/**/_jsload&&_jsload('earth', 'function cK(T,e){this._initStartTime=Date.now();c2.call(this);this.radius=500;this._map=T;e=e||{};this._zoom=1;this._center=new co(0,0);this._heading=0;this._tilt=0;this._minZoom=1;this._maxZoom=T.getMaxZoom()-2;this._guid=bw.getGUID("earth_");this._enableTiltZoom=7;this._enableHeadingZoom=0;this._showRealSunlight=true;this._showMilkyway=true;this._earthBackground=null;this.zoomEventStatus="idle";this._preMoveendFired=true;this._animationInfo={};for(var i in e){if(typeof e[i]!=="undefined"){this["_"+i]=e[i]}}this._mProjection=iU;this._hotspots={length:0};this._layers=[];this._notLoadThumb=false;this._notLoadHigh=false;this.temp={};this._panes={};this._ratio=f3();this.zoomForNight=1;if(this._showRealSunlight===false){this.zoomForNight=0}this._streetLayerVisible=T._isHybridShow;if(this._zoom>15){this._calcRotationInfo()}this._init();this._initFinishTime=Date.now()}bw.Earth=cK;cK.MIN_TILT=0;cK.MAX_CENTER_LAT=90;cK.MIN_CENTER_LAT=-90;cK.RADIUS=6370996.81;cK.NORTH_POLE_LATLNG=new co(90,0);cK.SOUTH_POLE_LATLNG=new co(-90,0);cK.inherits(c2,"Earth");eP.extend(cK.prototype,{_init:function(){this._sphere=new dW(this,this.radius);this._createEarthCanvas();this._bootEarth();this._bindEvent();gW.earth=this;gW.initFPS();var e=this;setTimeout(function(){var jV=gW.getAverageFPS();var T=gW.getHigherAverageFPS();var i=new fA("onfpsdata_ready");i.fps=jV;i.fpsH=T;e.fire(i);gW.clearFPSData()},10000);setTimeout(function(){var jV=gW.getAverageFPS();var T=gW.getHigherAverageFPS();var i=new fA("onfpsdata_ready");i.fps=jV;i.fpsH=T;e.fire(i);gW.stopFPS()},30000)},_createEarthCanvas:function(){var jX=this._map;var jV=jX.getSize();var T=jV.width;var e=jV.height;var i=jX.container;var jY=bV("canvas");var jW=jY.style;jW.zIndex=1;jW.position="absolute";jW.background="#000";jW.left=jW.top=0;jW.width=T+"px";jW.height=e+"px";jY.width=T*this._ratio;jY.height=e*this._ratio;hq(jY,jX.platform);this._container=i;this._containerSize=new iL(T,e);this._canvas=jY},_bootEarth:function(){this.scene=new hR(this);if(this._showMilkyway&&!this._earthBackground){this.scene.addRenderer(new ef(this))}if(this._earthBackground){this.scene.addRenderer(new bf(this))}this._atmosphereRenderer=new fM(this);this.scene.addRenderer(this._atmosphereRenderer);this.addLayer(new jx(this));if(this._streetLayerVisible===true){this._streetLayer=new jw(this);this.addLayer(this._streetLayer);this.scene.addRenderer(new f7(this));this._labelLayer=new gh(this);this.addLayer(this._labelLayer)}else{var e=this._map._hideStreetLayerOptions;if(e&&e.hideStreet===false){this._streetLayer=new jw(this);this.addLayer(this._streetLayer)}this.scene.addRenderer(new f7(this));if(e&&e.hideLabels===false){this._labelLayer=new gh(this);this.addLayer(this._labelLayer)}}this.scene.addRenderer(new gd(this));this._map._mouse.setEarthDrag(new an(this._map,this));this._map._mouse.setEarthWheel(new cr(this._map,this))},_bindEvent:function(){var e=this;var i=e._map;i.on("resize",function(jV){e._containerSize=jV.size;e._imageZoom=null;e._imageRawZoom=null;var T=new fA("onsize_changed");T.size=jV.size;e.fire(T)});this.on("statuschange",function(T){if(T.changedStatus.onzoom_changed){e._calcDragLatLimit();if(e._center.lat>cK.MAX_CENTER_LAT||e._center.latcK.MAX_CENTER_LAT||e._center.lat15){this._calcRotationInfo()}this.fire(new fA("on"+e+"_changed"))},_setValueTick:function(e,jW,jV,i){if(e==="center"){var T=new co(jW.lat+jV.lat*i,jW.lng+jV.lng*i);this._setValue(e,T);return}this._setValue(e,jW+jV*i)},setCenter:function(e,i){i=i||{};e.lat=b8(e.lat,cK.MIN_CENTER_LAT,cK.MAX_CENTER_LAT);if(this._center.equals(e)){return}var T=this;if(!i.noFireEvent){if(this._preMoveendFired){T.fire(new fA("onmovestart"));this._preMoveendFired=false}i.mapNeedCbk=function(){T.fire(new fA("onmoveend"))}}if(i.stopCurrentAnimation&&this._ani){this._ani.stop(false,{stopCurrentAnimation:true})}if(i.noAnimation){this._center=e;if(this._zoom>15){this._calcRotationInfo()}this.fire(new fA("oncenter_changed"));if(!i.noFireEvent){this.fire(new fA("onmoving"));if(this._moveendTimer){clearTimeout(this._moveendTimer)}var T=this;this._moveendTimer=setTimeout(function(){T.fire(new fA("onmoveend"));T._preMoveendFired=true;T._moveendTimer=null},60)}if(i.callback){i.callback()}return}this._animationInfo.center={current:this._center,diff:e.sub(this._center)};this._startAnimation(i)},_calcRotationInfo:function(){var T=this._center;var jW=Math.sin(im(T.lat));var jV=Math.cos(im(T.lat));var i=Math.sin(im(-T.lng-180));var e=Math.cos(im(-T.lng-180));this.rotationInfo=[jW,jV,i,e]},setViewportIn:function(i,T){var e;if(i&&i.center){e=i}else{e=this.getViewportIn(i,T)}var jV=e.earthZoom||e.zoom;T=T||{};if(this._ani){this._ani.stop(false,{stopCurrentAnimation:T.stopCurrentAnimation})}this.centerAndZoomIn(e.center,jV,T.callback)},setHeading:function(jV,i){i=i||{};if(jV===this._heading){i.callback&&i.callback();return}var T=d7(this._heading,360);var e=d7(jV,360);if(e===T){this._heading=jV;return}if(i&&i.noAnimation){this._setValue("heading",jV);i.callback&&i.callback();return}this._animationInfo.heading={current:this._heading,diff:jV-this._heading};this._startAnimation(i)},resetHeading:function(e){var i=this._heading;while(i<0){i+=360}i=i%360;if(i>180){i-=360}this._heading=i;this.setHeading(0,e)},setTilt:function(e,i){i=i||{};if(e===this._tilt){i.callback&&i.callback();return}e=b8(e,cK.MIN_TILT,this._map.getCurrentMaxTilt());if(i.noAnimation){this._setValue("tilt",e);i.callback&&i.callback();return}this._animationInfo.tilt={current:this._tilt,diff:e-this._tilt};this._startAnimation(i)},centerAndZoomIn:function(e,jV,jW){jV=b8(jV,this._minZoom,this._maxZoom);e.lat=b8(e.lat,cK.MIN_CENTER_LAT,cK.MAX_CENTER_LAT);var i=bw.EarthAnimation.start(this,e,jV,jW);if(i===false){var T={noAnimation:true};this.setCenter(e,T);this.setZoom(jV,T);jW&&jW()}},mathLog2:function(e){return Math.log(e)/Math.log(2)},getViewportIn:function(j9,jY){var j3;if(j9.length>0){j3=new cC();for(var ka=0,j7=j9.length;kaj0?jV:j0;var j8=18-this.mathLog2(j4);var kd=Math.floor(j8);kd+=jZ;return{center:kc,zoom:kd}},getZoom:function(){return this._zoom},zoomIn:function(e){this.setZoom(this.getZoom()+1,e)},zoomOut:function(e){this.setZoom(this.getZoom()-1,e)},getCenter:function(){return this._center},getHeading:function(){return this._heading},getTilt:function(){return this._tilt},getContainerSize:function(){return this._containerSize},getContainer:function(){return this._container},fromPixelToLatLng:function(i,e){return this.scene.fromPixelToLatLng(i,e)},fromLatLngToPixel:function(T,i){i=i||{};var e=this.scene.fromLatLngToPixel(T,i);if(!i.useRound){return e}e.x=Math.round(e.x);e.y=Math.round(e.y);return e},ifLatLngInView:function(i){var e=this.scene.fromLatLngToXYZ(i);return this.scene.ifXYZInView(e[0],e[1],e[2])},saveMatrixInfo:function(){this.scene.saveMatrixInfo()},getBounds:function(){return this.scene.getBounds()},getCustomBounds:function(){return this.scene.getCustomBounds()},getProjection:function(){return this._mProjection},getSunZenith:function(){return this.scene._camera.getSunZenith()},_startAnimation:function(i){var jV=this._animationInfo;var T=this;i=i||{};if(T._ani){T._ani.stop(!!i.goToEnd,{stopCurrentAnimation:i.stopCurrentAnimation})}if(T._infiniteAni){T._infiniteAni.stop();T._infiniteAni=null}var jW=i.duration||500;var jX=i.transition||gq.easeOutQuad;var e=new fA("onanimation_start");this.fire(e);T._ani=new fq({duration:jW,transition:jX,render:function(j0,jZ){for(var jY in jV){var j2=jV[jY].current;var j1=jV[jY].diff;T._setValueTick(jY,j2,j1,j0)}if(i.renderCallback){i.renderCallback()}},finish:function(){T.fire(new fA("onanimation_end"));T._animationInfo={};T._ani=null;if(i.mapNeedCbk){i.mapNeedCbk()}if(i.callback){i.callback()}},onStop:function(jY){jY=jY||{};T.fire(new fA("onanimation_end"));if(jY.stopCurrentAnimation){T._animationInfo={}}T._ani=null;if(jY.mapNeedCbk){jY.mapNeedCbk()}if(jY.callback){jY.callback()}}})},_startInfiniteZoomAnimation:function(i){var jV=this._animationInfo;var T=this;i=i||{};if(T._ani){T._ani.stop(!!i.goToEnd,{stopCurrentAnimation:i.stopCurrentAnimation})}if(T._infiniteAni){return}var e=new fA("onanimation_start");this.fire(e);T._infiniteAni=new fq({duration:10000,transition:gq.linear,render:function(jY,jX){var jW=T._animationInfo.zoom;if(Math.abs(jW.current-jW.target)<0.001){T._setValue("zoom",jW.target);T._infiniteAni.stop();return}jW.current+=(jW.target-jW.current)*0.35;T._setValue("zoom",jW.current);if(i.renderCallback){i.renderCallback()}},finish:function(){T._infiniteAni=null;T._animationInfo={};T.fire(new fA("onanimation_end"));if(i.callback){i.callback()}},onStop:function(){T._infiniteAni=null;T._animationInfo={};T.fire(new fA("onanimation_end"));if(i.callback){i.callback()}}})},_generateTmpPMatrix:function(i){var jV=mat4.create(Float64Array);mat4.identity(jV);var T=this.getContainerSize();this._widthHeightRatio=T.width/T.height;i=i||this.getZoom();var e;if(i<=3){e=70-10*i}else{e=40}mat4.perspective(jV,im(e),this._widthHeightRatio,0.01,6000);return jV},_generateTmpMVMatrix:function(e,jY,jZ,j0){var T=mat4.create(Float64Array);mat4.identity(T);jY=jY||this.getZoom();var i;if(jY<=3){i=3.4*this.radius-0.8*this.radius*jY}else{i=this.radius/Math.pow(2,jY-3)}mat4.translate(T,T,[0,0,-i]);if(typeof jZ!=="number"){jZ=this.getTilt()}if(jZ!==0&&jY<6){if(jY>=4){jZ=(1-(6-jY)/2)*jZ}else{jZ=0}}if(jZ!==0){mat4.rotate(T,T,im(jZ),[-1,0,0])}if(typeof j0!=="number"){j0=this.getHeading()%360}else{j0=j0%360}mat4.translate(T,T,[0,0,-this.radius]);if(j0!==0){mat4.rotate(T,T,im(j0),[0,0,-1])}e=e||this.getCenter();var jW=e.lat;mat4.rotate(T,T,im(jW),[1,0,0]);var jV=180;var jX=e.lng;mat4.rotate(T,T,im(jV+jX),[0,-1,0]);return T},addLayer:function(jV){var jW=new fA("onlayer_add");jW.layer=jV;for(var T=0;T=7?Math.ceil(j5):Math.floor(j5);if(j0-this._zoom>2.5){j0=Math.floor(this._zoom+2)}this._imageZoom=j0;if(this._imageZoom>22){this._imageZoom=19}if(this._imageZoom<3){this._imageZoom=3}return this._imageZoom},getMapZoom:function(){return this.getImageZoom(this._map._renderType==="webgl")},_getEarthZoomByImgZoom:function(j6,j8,jY){var j4=this._containerSize.width;var j3=this._containerSize.height;j8=j8||this._center;if(!jY){var j1=iU.convertLL2MC(j8);var j0=j3/3*Math.pow(2,18-j6);var ka=new cu(j1.lng,j1.lat-j0/2);var i=new cu(j1.lng,j1.lat+j0/2);jY=iU.convertMC2LL(i).lat-iU.convertMC2LL(ka).lat}var jV;var j7=180;var e=j3/3;var T=2/3*j3;for(var jW=j6;jW>=j6-3;jW-=0.1){var jX=null;if(jW<3&&this._zoom>=3||jW>=3&&this._zoom<3){this._generateTmpPMatrix(jW)}var jZ=this._generateTmpMVMatrix(j8,jW,0,0);var j9=this.fromPixelToLatLng(new fa(j4/2,e),{matrixInfo:{modelViewMatrix:jZ,projectionMatrix:jX}});var j5=this.fromPixelToLatLng(new fa(j4/2,T),{matrixInfo:{modelViewMatrix:jZ,projectionMatrix:jX}});var j2=Math.abs((j9.lat-j5.lat)-jY);if(j2this._maxZoom){jW=this._maxZoom}}return jW},getEarthCanvas:function(){return this._canvas},getMap:function(){return this._map},showStreetLayer:function(){if(this._streetLayerVisible===true){return}this._streetLayerVisible=true;this.addLayer(this._streetLayer);this.addLayer(this._labelLayer);this._map.fire(new fA("onstreetlayer_show"))},hideStreetLayer:function(e){if(this._streetLayerVisible===false){return}this._streetLayerVisible=false;e=e||{hideLabels:true,hideStreet:true};if(e.hideLabels){this.removeLayer(this._labelLayer)}if(e.hideStreet){this.removeLayer(this._streetLayer)}this._map.fire(new fA("onstreetlayer_hide"))},startSunLightAnimation:function(){bw.EarthAnimation.startSunLightAnimation(this)},stopSunLightAnimation:function(e){bw.EarthAnimation.stopSunLightAnimation(this,e)},setTimeForSunLight:function(i,T){if(i===null){this._timeForSunLight=null;this.fire(new fA("onsunlighttime_clear"));return}this._timeForSunLight={hour:i,minute:T};var e=new fA("onsunlighttime_change");e.timeForSunLight=this._timeForSunLight;this.fire(e)},getDeviceInfo:function(){return this._deviceInfo},setLock:function(e){this._lock=e},getLock:function(){return this._lock},_calcDragLatLimit:function(){var jW=this.scene._camera.getEarthRadiusOnScreen();var i=this.getContainerSize().height/2;var jV;if(jW>i){jV=30}else{cK.MAX_CENTER_LAT=46;cK.MIN_CENTER_LAT=-46;return}var e=new co(0,0);var T=this._generateTmpMVMatrix(e,0,0,0);var jZ=null;if(this._zoom<=3){jZ=this._generateTmpPMatrix(this._zoom)}var jY=this.fromPixelToLatLng(new fa(this.getContainerSize().width/2,jV),{matrixInfo:{modelViewMatrix:T,projectionMatrix:jZ}});if(!jY){return}var jX=jY.sub(e);cK.MAX_CENTER_LAT=90-Math.abs(jX.lat);cK.MIN_CENTER_LAT=-90+Math.abs(jX.lat)},zoomWithMousePosFix:function(jV,jZ,j0){if(jV<1.3&&j0&&j0.opMethod==="mouseWheel"){jV=1}var e=this.fromPixelToLatLng(jZ);var jW={from:"mouse"};j0=j0||{};eP.extend(jW,j0);if(!e){this.setZoom(jV,jW);return}var i=this.getCenter().clone();var jX=this;var jY=null;if(jV<=3){jY=jX._generateTmpPMatrix(jV)}var T=jX.fromPixelToLatLng(jZ,{matrixInfo:{modelViewMatrix:jX._generateTmpMVMatrix(i,jV),projectionMatrix:jY}});if(!T){this.setZoom(jV,jW);return}jW.renderCallback=function(){var j5=null;var j3=jX.getZoom();if(j3<=3){j5=jX._generateTmpPMatrix(j3)}var j4=jX.fromPixelToLatLng(jZ,{matrixInfo:{modelViewMatrix:jX._generateTmpMVMatrix(i,j3),projectionMatrix:j5}});if(j4){var j2=j4.sub(e);var j1=new co(i.lat-j2.lat,i.lng-j2.lng);jX.setCenter(j1,{noAnimation:true,from:"mouse",noFireEvent:true})}};this.setZoom(jV,jW)}});function ch(){}bw.EarthView=ch;eP.extend(ch.prototype,{centerAndZoomIn:function(e,jV){if(!e&&!jV){return}e=e||this.centerPoint;jV=jV||this.zoomLevel;jV=this._getProperZoom(jV).zoom;var i=iU.convertMC2LL(e);var T=this._earth._getEarthZoomByImgZoom(jV,i);this._earth.centerAndZoomIn(i,T)},zoomTo:function(jW,i){var jV=i;if(!jV&&this.temp.infoWin&&this.temp.infoWin.isOpen()){jV=this.getInfoWindow().getPoint()}if(jV){var e=this.pointToPixelIn(jV);var T=this._earth._getEarthZoomByImgZoom(jW);this._earth.zoomWithMousePosFix(T,e)}else{this._earth.setImageZoom(jW)}},deepZoomMedia:function(e){var i=this;if(!i.temp.isStdCtrlBusy){i.temp.isStdCtrlBusy=true;i.deepZoomTo(i.zoomLevel+e);setTimeout(function(){i.temp.isStdCtrlBusy=false},400)}},deepZoomTo:function(e){this.zoomTo(e)},flyToIn:function(e,jV){if(!jV||jV===this.zoomLevel){this.panToIn(e);return}var T=iU.convertMC2LL(e);var i=this._earth._getEarthZoomByImgZoom(jV,T);this._earth.centerAndZoomIn(T,i)},panToIn:function(e,jV){if(!e||e.toString()!=="Point"){return}if(e.equals(this.centerPoint)){return}var i=new fa(this.width/2,this.height/2);var T=iU.convertMC2LL(e);e._llPt=T;var jW=this.pointToPixelIn(e);jV=jV||{};if(Math.abs(i.x-jW.x)>this.width||Math.abs(i.y-jW.y)>this.height||jV.noAnimation===true){this._earth.setCenter(T,{noAnimation:true,callback:jV.callback})}else{this._earth.setCenter(T,jV)}},panBy:function(j3,jZ,j2){var jX=this._earth.getCenter();var j1=this.getSize();j2=j2||{};var jV;if(!j2.point){jV=new fa(j1.width/2+j3,j1.height/2+jZ)}else{var jW=iU.convertMC2LL(j2.point);var j0=this._earth.fromLatLngToPixel(jW);jV=new fa(j0.x+j3,j0.y+jZ);jX=new co(jW.lat,jW.lng)}var jY=this._earth.fromPixelToLatLng(jV);var T=jY.sub(jX);var e=this._earth.getCenter();var i=new co(e.lat-T.lat,e.lng-T.lng);this._earth.setCenter(i,j2)},getCenterIn:function(){var e=this._earth.getCenter();return iU.convertLL2MC(e)},getZoom:function(){if(this._renderType==="webgl"){return this._earth.getImageZoom(true)}return this._earth.getImageZoom()}});var hA={_zoomAni:null,_zoomAni2:null,_posAni:null,start:function(jV,i,j5,j1){var j7=jV.getCenter();var T=jV.getZoom();if(i.equals(jV.getCenter())&&j5!==jV.getZoom()){jV.setZoom(j5,{callback:j1});return{}}var jZ=jV.getDistance(i,j7)/1000;if(jZ<100&&j5!==jV.getZoom()){return false}if(jZ<100&&j5===jV.getZoom()){jV.setCenter(i,{callback:j1});return{}}if(i.equals(jV.getCenter())&&j5===jV.getZoom()){return false}jV.setLock(true);var j8=null;var j2=null;var jW=new co((j7.lat+i.lat)/2,(j7.lng+i.lng)/2);j8=jV._generateTmpMVMatrix(jW,j5);if(j5<=3){j2=jV._generateTmpPMatrix(j5)}var jX={matrixInfo:{modelViewMatrix:j8,projectionMatrix:j2}};var kb=jV.fromLatLngToPixel(j7,jX);var j3=jV.fromLatLngToPixel(i,jX);var jY=Math.sqrt(Math.pow(kb.x-j3.x,2)+Math.pow(kb.y-j3.y,2));var j0=j5;while(jY>350){j0-=1;jY/=2}j0=j0<1.1?1.1:j0;j0=j0>17?17:j0;var j6=Math.min(Math.min(j0,T),j5);var ka=j6-T;var kc=j5-j6;var kd=i.sub(j7);var j9=1100;var e=1200;var j4=2000;jV.setNotLoadHigh(true);if(hA._zoomAni){hA._zoomAni.stop()}hA._zoomAni=new fq({duration:j9,transition:gq.easeOutCubic,render:function(kf,ke){if(ke>0.8){jV.setNotLoadThumb(false)}if(T+ka*kf<1){throw"error"}jV._setValue("zoom",T+ka*kf)},finish:function(){hA._zoomAni=null},onStop:function(ke){hA._zoomAni=null}}).append(function(){hA._zoomAni2=new fq({duration:e,delay:1100,transition:gq.easeInCubic,render:function(kf,ke){if(ke>0.8){jV.setNotLoadThumb(false)}if(j6+kc*kf<1){throw"error"}jV._setValue("zoom",j6+kc*kf)},finish:function(){jV.setNotLoadHigh(false);jV._setValue("zoom",j5);hA._zoomAni2=null;j1&&j1();jV.setLock(false);jV.fire(new fA("oncenterandzoom"))},onStop:function(ke){hA._zoomAni2=null;j1&&j1();jV.setLock(false);jV.fire(new fA("oncenterandzoom"))}})});if(hA._posAni){hA._posAni.stop()}hA._posAni=new fq({duration:j4,delay:500,transition:gq.easeInOutQuad,render:function(kf,ke){jV._setValue("center",new co(j7.lat+kd.lat*kf,j7.lng+kd.lng*kf))},finish:function(){hA._posAni=null},onStop:function(ke){hA._posAni=null}});return{zoomAniStart:hA._zoomAni,zoomAniEnd:hA._zoomAni2,posAni:hA._posAni}},stop:function(){hA._zoomAni&&hA._zoomAni.stop();hA._zoomAni2&&hA._zoomAni2.stop();hA._posAni&&hA._posAni.stop();hA._zoomAni=hA._zoomAni2=hA._posAni=null},startFirstAnimation:function(j3){var j2=false;try{j2=!!window.localStorage.getItem("show_first_earth_ani")}catch(jZ){j2=true}if(j2){return false}var jV=j3.getCenter();var j5=j3.getZoom();var T=j3.getSunZenith();var i=new co(-T.lat,T.lng+180);var j4=jV.sub(i);j3._firstAni=true;j3.setLock(true);j3.setZoom(j3.zoomForNight,{noAnimation:true});j3.setCenter(i,{noAnimation:true});var jW=6000;var j1=3000;var j0=jW+1700;var jX=new fq({duration:jW,delay:1600,transition:gq.easeInOutQuad,render:function(e){j3.setCenter(new co(i.lat+j4.lat*e,i.lng+j4.lng*e),{noAnimation:true})}});var jY=new fq({duration:j1,delay:j0,transition:gq.easeInOutQuad,render:function(e){if(e>0.2&&e<0.4){j3.setNotLoadHigh(true)}j3.setZoom(j3.zoomForNight+(j5-j3.zoomForNight)*e,{noAnimation:true})},finish:function(){j3.setNotLoadHigh(false);j3._firstAni=false;j3.zoomForNight=1;j3.setLock(false)},onStop:function(){j3.setNotLoadHigh(false);j3._firstAni=false;j3.zoomForNight=1;j3.setLock(false)}});try{window.localStorage.setItem("show_first_earth_ani",true)}catch(jZ){}return{firstCenterAni:jX,firstZoomAni:jY}},startSunLightAnimation:function(jY){if(this._sunLightAni){return}if(jY.getLock()){return}this._originCenter=new co(jY.getCenter().lat,jY.getCenter().lng);this._originZoom=jY.getZoom();var T=jY.getSunZenith();var jX=new co(T.lat,T.lng-90);var jV=this;var i=new Date();var e=i.getHours();var jW=i.getMinutes()-0.5;if(jW<0){jW+=60;e--}jY.setLock(true);jY.centerAndZoomIn(jX,jY.zoomForNight,function(){jY.setLock(false);if(jV._sunLightAni){return}jV._sunLightAni=new fq({duration:9999999,render:function(jZ){jW+=0.5;if(jW===60){jW=0;e++}jY.setTimeForSunLight(e,jW);jX.lng=jY.getSunZenith().lng-90;jY.setCenter(new co(jX.lat,jX.lng),{noAnimation:true});if(jY._zoom!==jY.zoomForNight){jV.stopSunLightAnimation(jY,true)}}})})},stopSunLightAnimation:function(i,e){if(!this._sunLightAni){return}if(i.getLock()){return}this._sunLightAni.stop();this._sunLightAni=null;if(e){i.setTimeForSunLight(null);return}i.setLock(true);i.centerAndZoomIn(this._originCenter,this._originZoom,function(){i.setLock(false);i.setTimeForSunLight(null)})}};bw.EarthAnimation=hA;function aj(T){var i=T.getExtension("WEBGL_debug_renderer_info");if(!i){return null}var jV=T.getParameter(i.UNMASKED_VENDOR_WEBGL);var e=T.getParameter(i.UNMASKED_RENDERER_WEBGL);return{vendor:jV,renderer:e}}var gW={_fps:0,fps:0,currentTime:null,preFrameTimeStamp:Date.now(),fpsArr:[],averageFPS:0,higherAverageFPS:0,averageTimeInterval:30,initFPS:function(){gW._fps++;gW.currentTime=Date.now();if(gW.currentTime-gW.preFrameTimeStamp>=1000){gW.fps=gW._fps;gW.fpsArr.push(gW.fps);if(gW.fpsArr.length===gW.averageTimeInterval){gW._calcAverageFPS()}gW._fps=0;gW.preFrameTimeStamp=gW.currentTime;var e=new fA("onfpstick");e.fps=gW.fps;gW.earth._map.fire(e)}gW.timer=requestAnimationFrame(gW.initFPS)},_calcAverageFPS:function(){var jV=0;var e=0;gW.fpsArr.sort(function(jX,i){return i-jX});var jW=gW.fpsArr.length*0.8;for(var T=0;T300){j1=j1.slice(0,300)}this._sortByImgZoom(j1);this._sortByImgZoom(jZ);this._generateNormalModels(jZ,jW);return j1},_generateNormalModels:function(jW,T){var e=jW.slice(0);for(var jV=e.length-1;jV>=0;jV--){if(e[jV].key&&e[jV].key.indexOf("_er_")>0){e.splice(jV,1);continue}}this._curViewNormalModels=e;this._curViewNormalNAModels=T},getCurViewNormalModels:function(e){if(!e||e.getName()==="web"){return this._curViewNormalModels}return this._curViewNormalNAModels},removeExtraTiles:function(kb){var j9=kb.slice(0);var T=this._earth;var kn=T.getBounds();var e=T.getZoom();var jV=T.getContainerSize();var jX=T.getImageZoom();var j1=this._mcPrj;if(e>2&&e<6&&kn.holeAtTopLeft||j9.length>90){var kl=250;var kd=230;for(var kk=j9.length-1;kk>=0;kk--){if(!j9[kk].bounds){continue}j9[kk].atEdge=false;var ki=j9[kk].bounds[0];var ke=j9[kk].bounds[1];var j5=new cu(ke.lng,ki.lat);var kg=new cu(ki.lng,ke.lat);var km=new cu((ki.lng+ke.lng)/2,(ki.lat+ke.lat)/2);var j6=j1.convertMC2LL(km);var j3=T.scene.fromLatLngToXYZ(j6);var j2=T.scene.fromLatLngToPixel(j6);var jY=T.scene.ifXYZOnBack(j3.x,j3.y,j3.z,kl);if(jY){j9.splice(kk,1);continue}jY=T.scene.ifXYZOnBack(j3.x,j3.y,j3.z,-50);if(jY){if(j9[kk].imgZoom===jX){j9[kk].atEdge=true}continue}if(j2.x<0-kd||j2.x>jV.width+kd||j2.y<0-kd||j2.y>jV.height+kd){j9.splice(kk,1);continue}if(j2.x<50||j2.x>jV.width-50||j2.y<50||j2.y>jV.height-50){if(j9[kk].imgZoom===jX){j9[kk].atEdge=true}}}return j9}if((T.getTilt()===0&&T.getHeading()%90===0)||T.getZoom()<5){return j9}var jW=kn.pointBottomLeft;var kh=kn.pointTopRight;var j8=kn.pointTopLeft;var j4=kn.pointBottomRight;if(!jW||!kh||!j8||!j4){return j9}for(var kk=j9.length-1;kk>=0;kk--){if(!j9[kk].bounds){continue}var ki=j9[kk].bounds[0];var ke=j9[kk].bounds[1];var j5=new cu(ke.lng,ki.lat);var kg=new cu(ki.lng,ke.lat);var km=new cu((ki.lng+ke.lng)/2,(ki.lat+ke.lat)/2);var j6=j1.convertMC2LL(km);var j3=T.scene.fromLatLngToXYZ(j6);var j0=T.scene.ifXYZInView(j3.x,j3.y,j3.z);var ka=[kg,ke,j5,ki];if(!j0){var jZ=false;for(var kf=0,j7=ka.length;kf=0;j1--){var j2=T[j1];var j4=j2.imgZoom;if(j4>5||j2.projType==="er"){continue}var jW=j2.col;var j6=j2.row;var j0=dW.getMergedKey(jW,j6,j4);if(!e[j0]){var jY=dW.getMergedColRow(j4,jW,j6);e[j0]={key:j0,vertex:[],index:[],texture:null,textureCoord:[],mergedTile:true,col:jY[0],row:jY[1],imgZoom:j4,useZoom:j2.useZoom,tileCount:0,mergeInfo:[]}}var jV=e[j0];if(!jV.mergeInfo[jW+"_"+j6]){var jZ=this.addOffsetToIndex(j2.index,jV.vertex.length);jV.vertex=jV.vertex.concat(j2.vertex);jV.index=jV.index.concat(jZ);var j3=dW.getMergedTextureOffset(jW,j6);var j5=this.addOffsetToTexCoords(j2.textureCoord,j3);jV.textureCoord=jV.textureCoord.concat(j5);jV.tileCount++;jV.mergeInfo[jW+"_"+j6]=true;jV.textureCoord._dir=j2.textureCoord._dir}if(!jX[j0]){jX.push(jV);jX[j0]=true}j2.loadTextureOnly=true;j2.mergedKey=j0;j2.mergedCol=jV.col;j2.mergedRow=jV.row;j2.textureOffset=j3}return T.concat(jX)},addOffsetToIndex:function(e,jX){var jV=[];jX=jX/3;for(var T=0,jW=e.length/3;T3?3:j7;var jW=[];if(j2.lat>this._mcNorthLat||jY==="n"){jW=this.getPolarTileModels(T,"n")}var j5=Math.max(Math.min(this._mcNorthLat,j2.lat),this._mcSouthLat);var j4=Math.min(Math.max(this._mcSouthLat,jX.lat),this._mcNorthLat);var j6=new cC(new co(j4,jX.lng),new co(j5,j2.lng));var e;if(i.useLOD){e=this.getLODTileModels(j6,jY,j7,j0)}else{e=this._getTileModels(j6,jY,j7,j0)}var jV=e[0];var jZ=e[1];var j1=[];if(jX.latjX.lng){var j5=new cC(new co(j7.lat,j7.lng),new co(jX.lat,180));var j8=new cC(new co(j7.lat,-180),new co(jX.lat,jX.lng));var j6=this.__getTileModels(j5,j1,T,kg,"left",kc);var j4=this.__getTileModels(j8,j1,T,kg,"right",kc);var jZ=j6.concat(j4);jZ=this._sortByCenter(jZ,jW);var jY=this.__getTileModels(j5,j1,T,kg,"left",j0);var j3=this.__getTileModels(j8,j1,T,kg,"right",j0);var j9=jY.concat(j3);j9=this._sortByCenter(j9,e);return[jZ,j9]}var kf=this.__getTileModels(j2,j1,T,kg,null,kc);kf=this._sortByCenter(kf,jW);var i=this.__getTileModels(j2,j1,T,kg,null,j0);i=this._sortByCenter(i,e);return[kf,i]},_sortByImgZoom:function(e){e.sort(function(T,i){if(T.projType==="er"){return 1}if(i.projType==="er"){return -1}return T.imgZoom-i.imgZoom});return e},_sortByCenter:function(e,j2){if(e.length===0){return e}var j0=e[0].col;var j3=e[0].col;var jX=e[0].row;var jZ=e[0].row;for(var jV=0,T=e.length;jVj3){j3=jW.col}if(jW.rowjZ){jZ=jW.row}}var j1=j2.col;var jY=j2.row;e.sort(function(j4,i){var j6=Math.pow((j4.col-j1),2)+Math.pow((j4.row-jY),2);var j5=Math.pow((i.col-j1),2)+Math.pow((i.row-jY),2);return j6-j5});return e},__getTileModels:function(kj,j8,ks,jV,j3,j5){var j7=this;var T=j7._earth;var j1=this._mcPrj;var ke=kj.getSouthWest();var j4=kj.getNorthEast();var jZ=j5.getDataZoom(jV);var kf=j5.getTileSize(jV);var kl=j5.getMercatorSize(jV,jZ);if(ks>4){j8=false}var ky=j1.convertLL2MC(ke);var kp=j1.convertLL2MC(j4);var ko=ky.lng;var kc=kp.lng;var kn=ky.lat;var kb=kp.lat;var kh=Math.floor(ko/kl);var kr=Math.floor(kc/kl);var kk=Math.floor(kn/kl);var kB=Math.floor(kb/kl);var jW=j1.convertLL2MC(kj.getCenter());var ka=Math.floor(jW.lat/kl);var kw=kk;var j2=kB;if(j8){var kd=j1.convertLL2MC(new co(this._mcSouthLat,-180));var km=j1.convertLL2MC(new co(this._mcNorthLat,180));var kz=Math.floor(kd.lng/kl);var kx=Math.floor(kd.lat/kl);var kt=Math.floor(km.lng/kl);var j6=Math.floor(km.lat/kl);if(j8==="n"){j2=j6}else{if(j8==="s"){kw=kx}}}var kA=[];var j0=j7._colPrecisionPerTile;var kg=j7._rowPrecisionPerTile;if(jV<=7){j0=kg=Math.pow(2,7-jV)}var ki=this._mcMergeY;for(var kv=kw;kv<=j2;kv++){var kq=kh;var jX=kr;if((j8==="n"&&kv>=Math.min(kk,ka))||(j8==="s"&&kv<=Math.max(kB,ka))){if(j3==="left"){kq=kz;jX=-1}else{if(j3==="right"){kq=0;jX=kt}else{kq=kz;jX=kt}}}for(var ku=kq;ku<=jX;ku++){var e=kv*kl;var j9="key_"+j5.getName()+"_"+ku+"_"+kv+"_"+jV+"_"+jZ;var jY;if((e>=ki||e+kl<-ki)&&jV>3){jY=this._createTileModel(j9,kv,ku,jV,jZ,kl,j5,j0,kg)}else{jY=this._createTileModel(j9,kv,ku,jV,jZ,kl,j5,j0,kg)}if(!kA[jY.key]){kA.push(jY);kA[jY.key]=true}}}return kA},_createTileModel:function(kh,j8,j7,ke,j1,e,T,kc,ka){var j9=null,j0=this._mc180Pt,jW=this._mcM180Pt;var j2=ke/kc;var j6=kh+"_"+j2;dW.totalTileCount++;if(!dW._tileModelInfoCache.getData(j6)){var jZ=j7*e,jY=j8*e;var jV=e,j4=e,kd=0,j5="";var kf=jZ+e;if(kf>j0.lng){jV=j0.lng-jZ;j5="left"}if(jZkl||kD>kr||kKkl){kq-=j5;if(kq%km!==0){kq-=j5}}if(kKkr){kD-=j5;if(kD%km!==0){kD-=j5}}var j7;var jV;var ku;var ki;var kR;var kN=j5*0.1;var kc=[];if(j3>kW){j7=new cu(kD+kN,kW+kN);jV=new cu(kK-kN,j3-kN);ku=kE.convertMC2LL(j7);ki=kE.convertMC2LL(jV);kR=new cC(ku,ki);kc=this._getTileModels(kR,kn,kQ,kf)[0]}var kF=[];if(ka>kq){j7=new cu(kD+kN,kq+kN);jV=new cu(kK-kN,ka-kN);ku=kE.convertMC2LL(j7);ki=kE.convertMC2LL(jV);kR=new cC(ku,ki);kF=this._getTileModels(kR,kn,kQ,kf)[0]}var kO=[];if(kK>kI){j7=new cu(kI+kN,ka+kN);jV=new cu(kK-kN,kW-kN);ku=kE.convertMC2LL(j7);ki=kE.convertMC2LL(jV);kR=new cC(ku,ki);kO=this._getTileModels(kR,kn,kQ,kf)[0]}var ke=[];if(kB>kD){j7=new cu(kD+kN,ka+kN);jV=new cu(kB-kN,kW-kN);ku=kE.convertMC2LL(j7);ki=kE.convertMC2LL(jV);kR=new cC(ku,ki);ke=this._getTileModels(kR,kn,kQ,kf)[0]}this.mergeArray(e,kc);this.mergeArray(e,kF);this.mergeArray(e,kO);this.mergeArray(e,ke);j5=kT*2;km=j5*2}return[e,j2]},mergeArray:function(jW,T){for(var jV=0,e=T.length;jV=0;jX--){var j5=im(jX*j3-e);var jY=Math.cos(j5)*j0;var j2=Math.sin(j5)*j0;for(var jW=0;jW0){return}var T=a1.H_SEGS;var kc=a1.V_SEGS;var jV=this._radius;var ka=360/T;var j6=180/(kc-1);var j8=[];var kb=T/this._cols;var j3=T/kb;var j5=[];var jX=0;var jW=0;var jY;for(var j9=0;j90&&j9%kb===0){var e=jW+(jX-1)*j3;var jZ=this._facesVertex[e].length-3*(kb+1);this._facesVertex[e].push(j2,j1,j0);if(j7>0&&j7%kb===0){if(this._facesVertex[e-1]){this._facesVertex[e-1].push(j2,j1,j0)}}if(j7==T-1){this._facesVertex[e].push(j5[0],j5[1],j5[2])}}if(jW===0&&j7===0){j5=[j2,j1,j0]}if(j7>0&&j7%kb===0){if(this._facesVertex[jY-1]){this._facesVertex[jY-1].push(j2,j1,j0)}}if(jX0){if(jV<0){j0=360-j0}}else{if(jV>0){j0=180-j0}else{j0=180+j0}}if(jW>this._x1){j1=3}else{if(jW>0){j1=2}else{if(jW>-this._x1){j1=1}else{j1=0}}}var i=Math.floor(j0/(360/this._cols));var e=a1.H_SEGS;var jZ=e/this._cols;var T=e/jZ;return[i,j1,i+j1*T]}});function er(e){this._earth=e;this._pMatrix=mat4.create();this._pMatrixInverse=mat4.create();this._pMatrix64=mat4.create(Float64Array);this._pMatrixInverse64=mat4.create(Float64Array);this._cMatrix=mat4.create();this._mvMatrix=mat4.create();this._mvMatrixForCamera=mat4.create();this._mvMatrixForCameraInverse=mat4.create();this._mvMatrixForAt=mat4.create();this._mvMatrixInverse=mat4.create();this._mvMatrix64=mat4.create(Float64Array);this._mvMatrixInverse64=mat4.create(Float64Array);this._mvMatrixForAtInverse=mat4.create();this._mvMatrixWithNoHeading=mat4.create();this._mvMatrixWithNoHeadingInverse=mat4.create();this._near=0.001;this._far=8000;this._guid=er.guid++;this._lightMatrix=mat4.create();this._lightMatrixInverse=mat4.create();this._lightMatrixForAt=mat4.create();this._lightMatrixForAtInverse=mat4.create();this._lightPosition=null;this._date=new Date();this._ray=new dL.Ray();this._calculateSunLightPos();this._tempV4=vec4.create(Float64Array);this._tempRes=vec4.create();this._tempNdc=vec4.create()}er.guid=0;eP.extend(er.prototype,{updateProjectionMatrix:function(){var i=this._earth.getContainerSize();this._widthHeightRatio=i.width/i.height;var e=this._earth.getZoom();if(e<=3){this._fovy=70-10*e}else{this._fovy=40}mat4.perspective(this._pMatrix64,im(this._fovy),this._widthHeightRatio,this._near,this._far);mat4.invert(this._pMatrixInverse64,this._pMatrix64);this._pMatrix=mat4.clone(this._pMatrix64);this._pMatrixInverse=mat4.clone(this._pMatrixInverse64)},updateModelViewMatrix:function(){var jV=this._mvMatrix64;var j0=this._mvMatrixForCamera;mat4.identity(jV);mat4.identity(j0);var j2=this._earth;var j4=j2.getZoom();var jW=180;var j5=j2.radius;var i;if(j4<=3){i=3.4*j5-0.8*j5*j4}else{i=j5/Math.pow(2,j4-3)}mat4.translate(jV,jV,[0,0,-i]);mat4.translate(j0,j0,[0,0,-i]);var j1=this._mvMatrixWithNoHeading;mat4.copy(j1,jV);var j3=j2.getTilt();if(j3!==0&&j4=j2._enableTiltZoom-2){j3=(1-(j2._enableTiltZoom-j4)/2)*j3}else{j3=0}}if(j3!==0){mat4.rotate(jV,jV,im(j3),[-1,0,0]);mat4.rotate(j0,j0,im(j3),[-1,0,0])}var j6=j2.getHeading();while(j6<0){j6+=360}j6%=360;if(j6>=315||j6<45){mat4.rotate(j1,j1,im(j3),[-1,0,0])}else{if(j6<135){mat4.rotate(j1,j1,im(j3),[0,-1,0])}else{if(j6<225){mat4.rotate(j1,j1,im(j3),[1,0,0])}else{mat4.rotate(j1,j1,im(j3),[0,1,0])}}}mat4.translate(j1,j1,[0,0,-j5]);mat4.translate(jV,jV,[0,0,-j5]);mat4.translate(j0,j0,[0,0,-j5]);var e=j2.getCenter();var jY=e.lat;var jZ=e.lng;if(j4<=6){mat4.copy(this._mvMatrixForAt,jV);mat4.invert(this._mvMatrixForAtInverse,this._mvMatrixForAt);mat4.copy(this._lightMatrix,jV);var jX=this._lightMatrix;mat4.rotate(jX,jX,im(this._sunLightLat),[1,0,0]);mat4.rotate(jX,jX,im(-jW+this._sunLightLng),[0,-1,0]);mat4.invert(this._lightMatrixInverse,this._lightMatrix);mat4.copy(this._lightMatrixForAt,this._mvMatrixForAt);var T=this._lightMatrixForAt;mat4.rotate(T,T,im(this._sunLightLat),[1,0,0]);mat4.rotate(T,T,im(jZ-this._sunLightLng),[0,1,0]);mat4.rotate(T,T,im(-jY),[1,0,0]);if(j6!==0){mat4.rotate(T,T,im(j6),[0,0,1])}mat4.invert(this._lightMatrixForAtInverse,T)}if(j6!==0){mat4.rotate(jV,jV,im(j6),[0,0,-1]);mat4.rotate(j0,j0,im(j6),[0,0,-1])}mat4.rotate(jV,jV,im(jY),[1,0,0]);mat4.rotate(j1,j1,im(jY),[1,0,0]);mat4.rotate(jV,jV,im(jW+jZ),[0,-1,0]);mat4.rotate(j1,j1,im(jW+jZ),[0,-1,0]);mat4.invert(this._mvMatrixInverse64,jV);this._mvMatrix=mat4.clone(jV);this._mvMatrixInverse=mat4.clone(this._mvMatrixInverse64);mat4.invert(this._mvMatrixForCameraInverse,j0);mat4.invert(this._mvMatrixWithNoHeadingInverse,j1);this._cameraPosition=null;this._cameraPositionForAt=null;this._distanceToSphereEdge=null;this._earthRadius=null;this._lightPosition=null;this._lightPositionForAt=null},_calculateSunLightPos:function(){var e=fn(this._date);this._sunLightLng=e[0];this._sunLightLat=e[1];var i=this;this._earth.on("sunlighttime_change",function(jV){var T=fn(i._date);i._sunLightLng=T[0];i._sunLightLat=T[1]});this._earth.on("sunlighttime_clear",function(jV){var T=fn(i._date);i._sunLightLng=T[0];i._sunLightLat=T[1]})},getSunZenith:function(){return new co(this._sunLightLat,this._sunLightLng)},saveMatrixInfo:function(){this._savePMatrixInverse=mat4.clone(this._pMatrixInverse);this._saveMVMatrixInverse=mat4.clone(this._mvMatrixInverse)},getProjectionMatrix:function(){return this._pMatrix},getModelViewMatrix:function(){return this._mvMatrix},getModelViewMatrixForAt:function(){return this._mvMatrixForAt},getInverseProjectionMatrix:function(){return this._pMatrixInverse},getInverseModelViewMatrix:function(){return this._mvMatrixInverse},fromXYZToNDC:function(jY,jW,T,j0){var jV=vec4.set(this._tempV4,jY,jW,T,1);var i=this._tempRes;j0=j0||{};var e=this._mvMatrix;var jX=this._pMatrix;if(j0.matrixInfo){e=j0.matrixInfo.modelViewMatrix||e;jX=j0.matrixInfo.projectionMatrix||jX}mat4.multiply(i,e,jV);mat4.multiply(i,jX,i);var jZ=vec4.set(this._tempNdc,i[0]/i[3],i[1]/i[3],i[2]/i[3],1);jZ.w=i[3];return jZ},getPosition:function(){if(this._cameraPosition){return this._cameraPosition}this._cameraPosition=vec3.transformMat4(vec3.create(),vec3.fromValues(0,0,0),this._mvMatrixInverse);return this._cameraPosition},getPositionForAt:function(){if(this._cameraPositionForAt){return this._cameraPositionForAt}this._cameraPositionForAt=vec3.transformMat4(vec3.create(),vec3.fromValues(0,0,0),this._mvMatrixForAtInverse);return this._cameraPositionForAt},getDistanceToSphereEdge:function(){if(this._distanceToSphereEdge){return this._distanceToSphereEdge}var i=vec3.len(this.getPosition());var e=this._earth.radius;this._distanceToSphereEdge=(Math.pow(i,2)-e*e)/i;return this._distanceToSphereEdge},getLength:function(){return vec3.len(this.getPosition())},castRay:function(T,jW){var i=this._ray;var e=T.x;var jZ=T.y;var jV=vec3.create(Float64Array);var jX=vec4.set(this._tempV4,e,jZ,-1,1);this._calcV4InCastRay(jX,jW);vec3.scale(jV,jX,1/jX[3]);var jY=vec3.create(Float64Array);jX=vec4.fromValues(e,jZ,1,1);this._calcV4InCastRay(jX,jW);vec3.scale(jX,jX,1/jX[3]);vec3.sub(jY,jX,jV);vec3.normalize(jY,jY);i.set(jV,jY);return i},_calcV4InCastRay:function(jX,T){if(!T){mat4.multiply(jX,this._pMatrixInverse64,jX);mat4.multiply(jX,this._mvMatrixInverse64,jX)}else{if(T.useOld){mat4.multiply(jX,this._savePMatrixInverse,jX);mat4.multiply(jX,this._saveMVMatrixInverse,jX)}else{if(T.useNoHeading){mat4.multiply(jX,this._pMatrixInverse,jX);mat4.multiply(jX,this._mvMatrixWithNoHeadingInverse,jX)}else{if(T.matrixInfo){var e=T.matrixInfo.projectionMatrix;var jV=mat4.create(Float64Array);if(e){mat4.invert(jV,e)}else{jV=this._pMatrixInverse}var i=T.matrixInfo.modelViewMatrix;var jW=mat4.create(Float64Array);if(i){mat4.invert(jW,i)}else{jW=this._mvMatrixInverse}mat4.multiply(jX,jV,jX);mat4.multiply(jX,jW,jX)}}}}},getLightPosition:function(){if(this._lightPosition){return this._lightPosition}this._lightPosition=vec3.transformMat4(vec3.create(),vec3.fromValues(0,0,0),this._lightMatrixInverse);return this._lightPosition},getLightPositionForAt:function(){if(this._lightPositionForAt){return this._lightPositionForAt}this._lightPositionForAt=vec3.transformMat4(vec3.create(),vec3.fromValues(0,0,0),this._lightMatrixForAtInverse);return this._lightPositionForAt},getEarthRadiusOnScreen:function(){if(this._earthRadius){return this._earthRadius}var jV=vec3.len(this.getPosition());var T=Math.tan(im(this._fovy/2))*this._near;var i=this._earth.radius;var e=this._near*i/Math.sqrt(Math.pow(jV,2)-i*i)/T;this._earthRadius=Math.round(e*this._earth.getContainerSize().height/2);return this._earthRadius}});function hR(i){this._earth=i;this._canvas=i._canvas;this._gl=null;this._renderers=[];this._camera=new er(i);var e=i.getContainerSize();this._width=e.width;this._height=e.height;this._enableTiltZoom=i._enableTiltZoom;this._changedStatus={};this._ratio=i._ratio;this._radius=i.radius;this._onEachFrame=(function(T){return function(){T._renderFrame()}})(this);this._init()}eP.extend(hR.prototype,{_init:function(){this._gl=L(this._canvas);this._handleContextStatus();this._setupWebGL();this._bind();this.onStatusChange();this.startRenderThread();var T=new fA("onearthload");var i=aj(this._gl);if(!i){i={renderer:"",vendor:""}}T.hardwareInfo=i;T.earth=this._earth;this._earth._deviceInfo={hardwareInfo:i};this._earth._map._earth=this._earth;this._earth._map.dispatchEvent(T)},_handleContextStatus:function(){var e=this._canvas;var i=this;e.addEventListener("webglcontextlost",function(T){T.preventDefault();cancelAnimationFrame(i.renderTimer);i._earth.fire(new fA("onwebglcontextlost"));setTimeout(function(){window.location.reload()},200)},false);e.addEventListener("webglcontextrestored",function(T){i._earth.fire(new fA("onwebglcontextrestored"))},false)},_setupWebGL:function(){var i=this._gl;var e=this._canvas;i.clearColor(0,0,0,1);i.clear(i.COLOR_BUFFER_BIT|i.DEPTH_BUFFER_BIT);i.viewport(0,0,e.width,e.height)},_bind:function(){var jV=this._earth;var T=this;function jW(jX){T._renderOptions={event:jX};T._changedStatus[jX.type]=true;T._needToChangeStatus=true;T.startRenderThread()}jV.on("zoom_changed",jW);jV.on("center_changed",jW);jV.on("heading_changed",jW);jV.on("tilt_changed",jW);jV.on("forcerefresh",jW);jV.on("size_changed",jW);jV.on("displayoptions_changed",jW);jV.on("animation_end",jW);jV.on("layer_add",function e(jX){if(jX.layer.renderer){T.addRenderer(jX.layer.renderer)}});jV.on("layer_remove",function i(jX){if(jX.layer.renderer){T.removeRenderer(jX.layer.renderer)}});jV.on("idle",function(){cancelAnimationFrame(T.renderTimer);jV.fire(new fA("onrenderthreadstop"));T.renderTimer=null});jV.on("refresh",function(){T.startRenderThread()})},startRenderThread:function(){var e=this;if(e.idleTimer){clearTimeout(e.idleTimer)}e.idleTimer=setTimeout(function(){e._earth.fire(new fA("onidle"));e.idleTimer=null},100);if(this.renderTimer){return}this.renderTimer=requestAnimationFrame(this._onEachFrame)},_renderFrame:function(){this.renderTimer=requestAnimationFrame(this._onEachFrame);if(this._needToChangeStatus){this.onStatusChange();this._changedStatus={};this._needToChangeStatus=false}var jV=this._gl;jV.clear(jV.COLOR_BUFFER_BIT|jV.DEPTH_BUFFER_BIT);for(var T=0,e=this._renderers.length;T=0){if(jW<0){T=-e1(Math.asin(b8(i/e,-1,1)))}else{T=-(e1(Math.asin(b8(jW/e,-1,1)))+90)}}if(i<0){if(jW<0){T=e1(Math.asin(b8(-i/e,-1,1)))}else{T=e1(Math.asin(b8(jW/e,-1,1)))+90}}return new co(jV,T)},fromPixelToLatLng:function(T,i){var e=this.fromPixelToXYZ(T,i);if(!e){return null}return this.fromXYZToLatLng(e[0],e[1],e[2])},fromLatLngToPixel:function(i,j1){var jY=this.fromLatLngToXYZ(i);j1=j1||{};var e=this.fromXYZToPixel(jY[0],jY[1],jY[2],j1);if(j1.isCalcOnBack){var jX=this._camera;var j0=jX.getLength();var T=jX._fovy;var jW=this._radius;var jZ=Math.sqrt(j0*j0-jW*jW);var jV=Math.cos(im(T/2))*jZ;if(e.w>jV){e.onBack=true}}return e},ifXYZInView:function(jX,jW,jV){var i=this.fromXYZToPixel(jX,jW,jV);var e=this._width;var jZ=this._height;var jY=this._camera.getLength();if(this._earth.getZoom()>3){var j0=this.fromLatLngToPixel(this._earth.getCenter());var T=j0.w;if(Math.abs(i.w-T)>50){return false}}if(i.x>0&&i.x0&&i.ye+jV){return true}return false},getBounds:function(){if(this._curBounds){return this._curBounds}var T=this._earth;var jW=T.getZoom();if(jW<3){return this._getBoundsForSmallZoom()}var kk=T.getHeading();var j0=T.getContainerSize();var kc=[0,0,j0.width,j0.height];if(kk!==0){kc=hn(kk,new iL(j0.width,j0.height))}var kl=kc[0];var kj=kc[1];var j6=kc[2];var j5=kc[3];var j3=-1;var j2=-1;var jZ=-1;var jY=-1;var j4=-1;var e=this._width;var jX=this._height;var ks;var kq;var ke;var kn;var i=T.getCenter();var kb=false;var j7;var km=this._hasHoleInfoCache;var kd=this.fromPixelToLatLng(new fa(kl,kj),{useNoHeading:true});if(kd){ks=kd.lat;kn=kd.lng}j7=!ks?true:false;var ki;var kt=this._earth.getTilt();if(j7&&(kt===0||kt>0&&jW<5)){var ka=null;if(i.lat>50){ki=new cC(new co(i.lat-70,i.lng-90),new co(40,i.lng+90));ka=new cC(new co(40,i.lng-120),new co(90,i.lng+120))}else{if(i.lat<-50){ki=new cC(new co(-40,i.lng-90),new co(i.lat+70,i.lng+90));ka=new cC(new co(-90,i.lng-120),new co(-40,i.lng+120))}else{ki=new cC(new co(i.lat-70,i.lng-90),new co(i.lat+70,i.lng+90))}}ki._addBounds=ka;ki.holeAtTopLeft=!!j7;this._curBounds=ki;if(kt>0&&jW>=this._enableTiltZoom){ki.useLOD=true}return ki}var kp=this.fromPixelToLatLng(new fa(0,0));kd=this.fromPixelToLatLng(new fa((j6+kl)/2,kj),{useNoHeading:true});if(kd){if(!ks||kd.lat>ks){ks=kd.lat}if(km){j3=this._holeInfoCache.topX;kd=this.fromPixelToLatLng(new fa(j3,kj),{useNoHeading:true})}else{if(j7){for(var kh=kl+1;kh<=j6;kh++){kd=this.fromPixelToLatLng(new fa(kh,kj),{useNoHeading:true});if(kd!==null){break}}if(kd!==null){j3=kh;kn=kd.lng}}}}else{}if(!j7&&j3===-1){kd=this.fromPixelToLatLng(new fa(j6,kj),{useNoHeading:true})}else{kd=this.fromPixelToLatLng(new fa(j6-j3,kj),{useNoHeading:true});if(!kd){if(km){j4=this._holeInfoCache.topXRight;kd=this.fromPixelToLatLng(new fa(j4,kj),{useNoHeading:true})}else{for(var kh=j6-1;kh>=kl;kh--){kd=this.fromPixelToLatLng(new fa(kh,kj),{useNoHeading:true});if(kd!==null){break}}j4=kh}}}if(kd){ke=kd.lng;if(kd.lat>ks){ks=kd.lat}}var kg=this.fromPixelToLatLng(new fa(e,0));kd=this.fromPixelToLatLng(new fa(kl,(j5+kj)/2),{useNoHeading:true});if(kd){kb=true;if(j7){if(km){j2=this._holeInfoCache.topY;kd=this.fromPixelToLatLng(new fa(kl,j2),{useNoHeading:true})}else{for(var kf=kj+1;kf<=j5;kf++){kd=this.fromPixelToLatLng(new fa(kl,kf),{useNoHeading:true});if(kd!==null){break}}j2=kf}if(kd){kn=kd.lng}if(kd&&(!ks||kd.lat>ks)){ks=kd.lat}}if(!kn||i.getLngSpan(kd.lng)>i.getLngSpan(kn)){kn=kd.lng}}if(!ks){ks=90}kd=this.fromPixelToLatLng(new fa(j6,(j5+kj)/2),{useNoHeading:true});if(kd){if(j7&&j2!==-1){for(var kf=kj+j2-1;kf<=j5;kf++){kd=this.fromPixelToLatLng(new fa(j6,kf),{useNoHeading:true});if(kd!==null){break}}if(kd){ke=kd.lng}}if(i.getLngSpan(kd.lng)>i.getLngSpan(ke)){ke=kd.lng}}kd=this.fromPixelToLatLng(new fa(kl,j5),{useNoHeading:true});if(kd){kq=kd.lat;if(i.getLngSpan(kd.lng)>i.getLngSpan(kn)){kn=kd.lng}}else{if(kb){if(km){jY=this._holeInfoCache.bottomY;kd=this.fromPixelToLatLng(new fa(kl,jY),{useNoHeading:true})}else{for(var kf=j5-1;kf>=kj;kf--){kd=this.fromPixelToLatLng(new fa(kl,kf),{useNoHeading:true});if(kd!==null){break}}jY=kf}if(kd&&i.getLngSpan(kd.lng)>i.getLngSpan(kn)){kn=kd.lng}}}var j9=this.fromPixelToLatLng(new fa(0,jX+0));kd=this.fromPixelToLatLng(new fa((j6+kl)/2,j5),{useNoHeading:true});if(kd){var ko=!kq?true:false;if(kd.lati.getLngSpan(kn)){kn=kd.lng}}}}else{if(!kq){kq=-90}}if(jZ===-1){kd=this.fromPixelToLatLng(new fa(j6,j5),{useNoHeading:true})}else{kd=this.fromPixelToLatLng(new fa(j6-jZ,j5),{useNoHeading:true});if(!kd){for(var kh=j6-1;kh>=kl;kh--){kd=this.fromPixelToLatLng(new fa(kh,j5),{useNoHeading:true});if(kd!==null){break}}}}if(kd){if(i.getLngSpan(kd.lng)>i.getLngSpan(ke)){ke=kd.lng}if(kd.lat0&&jW<5){if(!kp){kp=new co(ks,kn);kg=new co(ks,ke)}var kr=T.getProjection();ki.pointTopLeft=kr.convertLL2MC(kp);ki.pointTopRight=kr.convertLL2MC(kg);ki.pointBottomRight=kr.convertLL2MC(j8);ki.pointBottomLeft=kr.convertLL2MC(j9)}if(kt>0&&jW>=this._enableTiltZoom){ki.useLOD=true}return ki},getCustomBounds:function(){var T=this._earth;if(T.getZoom()<3){return this._getBoundsForSmallZoom()}var jV=T.getHeading();var kb=T.getContainerSize();var jX=[0,0,kb.width,kb.height];if(jV!==0){jX=hn(jV,new iL(kb.width,kb.height))}var kh=jX[0];var kf=jX[1];var kg=jX[2];var ke=jX[3];var kl=-1;var kj=-1;var jY=-1;var jW=-1;var j3=-1;var j9=this._width;var j6=this._height;var kk;var j2;var kc;var ka;var ki=T.getCenter();var i=false;var ko;var e=this._hasHoleInfoCache;var kd=this._earth._generateTmpMVMatrix(T.getCenter(),T.getZoom(),0,0);var kn=this.fromPixelToLatLng(new fa(kh,kf),{matrixInfo:{modelViewMatrix:kd}});if(kn){kk=kn.lat;ka=kn.lng}ko=!kk?true:false;var km;if(ko){var j1=this.fromPixelToLatLng(new fa((kg+kh)/2,kf),{matrixInfo:{modelViewMatrix:kd}});if(j1){var jZ=this.fromPixelToLatLng(new fa((kg+kh)/2,ke),{matrixInfo:{modelViewMatrix:kd}});km=new cC(new co(jZ.lat-20,ki.lng-90),new co(j1.lat+20,ki.lng+90))}return km}kn=this.fromPixelToLatLng(new fa((kg+kh)/2,kf),{matrixInfo:{modelViewMatrix:kd}});if(kn){if(!kk||kn.lat>kk){kk=kn.lat}if(e){kl=this._holeInfoCache.topX;kn=this.fromPixelToLatLng(new fa(kl,kf),{matrixInfo:{modelViewMatrix:kd}})}else{if(ko){for(var j5=kh+1;j5<=kg;j5++){kn=this.fromPixelToLatLng(new fa(j5,kf),{matrixInfo:{modelViewMatrix:kd}});if(kn!==null){break}}if(kn!==null){kl=j5;ka=kn.lng}}}}else{}if(!ko&&kl===-1){kn=this.fromPixelToLatLng(new fa(kg,kf),{matrixInfo:{modelViewMatrix:kd}})}else{kn=this.fromPixelToLatLng(new fa(kg-kl,kf),{matrixInfo:{modelViewMatrix:kd}});if(!kn){if(e){j3=this._holeInfoCache.topXRight;kn=this.fromPixelToLatLng(new fa(j3,kf),{matrixInfo:{modelViewMatrix:kd}})}else{for(var j5=kg-1;j5>=kh;j5--){kn=this.fromPixelToLatLng(new fa(j5,kf),{matrixInfo:{modelViewMatrix:kd}});if(kn!==null){break}}j3=j5}}}if(kn){kc=kn.lng;if(kn.lat>kk){kk=kn.lat}}kn=this.fromPixelToLatLng(new fa(kh,(ke+kf)/2),{matrixInfo:{modelViewMatrix:kd}});if(kn){i=true;if(ko){if(e){kj=this._holeInfoCache.topY;kn=this.fromPixelToLatLng(new fa(kh,kj),{matrixInfo:{modelViewMatrix:kd}})}else{for(var j4=kf+1;j4<=ke;j4++){kn=this.fromPixelToLatLng(new fa(kh,j4),{matrixInfo:{modelViewMatrix:kd}});if(kn!==null){break}}kj=j4}if(kn){ka=kn.lng}if(kn&&(!kk||kn.lat>kk)){kk=kn.lat}}if(!ka||ki.getLngSpan(kn.lng)>ki.getLngSpan(ka)){ka=kn.lng}}if(!kk){kk=90}kn=this.fromPixelToLatLng(new fa(kg,(ke+kf)/2),{matrixInfo:{modelViewMatrix:kd}});if(kn){if(ko&&kj!==-1){for(var j4=kf+kj-1;j4<=ke;j4++){kn=this.fromPixelToLatLng(new fa(kg,j4),{matrixInfo:{modelViewMatrix:kd}});if(kn!==null){break}}if(kn){kc=kn.lng}}if(ki.getLngSpan(kn.lng)>ki.getLngSpan(kc)){kc=kn.lng}}kn=this.fromPixelToLatLng(new fa(kh,ke),{matrixInfo:{modelViewMatrix:kd}});if(kn){j2=kn.lat;if(ki.getLngSpan(kn.lng)>ki.getLngSpan(ka)){ka=kn.lng}}else{if(i){if(e){jW=this._holeInfoCache.bottomY;kn=this.fromPixelToLatLng(new fa(kh,jW),{matrixInfo:{modelViewMatrix:kd}})}else{for(var j4=ke-1;j4>=kf;j4--){kn=this.fromPixelToLatLng(new fa(kh,j4),{matrixInfo:{modelViewMatrix:kd}});if(kn!==null){break}}jW=j4}if(kn&&ki.getLngSpan(kn.lng)>ki.getLngSpan(ka)){ka=kn.lng}}}kn=this.fromPixelToLatLng(new fa((kg+kh)/2,ke),{matrixInfo:{modelViewMatrix:kd}});if(kn){var j8=!j2?true:false;if(kn.latki.getLngSpan(ka)){ka=kn.lng}}}}else{if(!j2){j2=-90}}if(jY===-1){kn=this.fromPixelToLatLng(new fa(kg,ke),{matrixInfo:{modelViewMatrix:kd}})}else{kn=this.fromPixelToLatLng(new fa(kg-jY,ke),{matrixInfo:{modelViewMatrix:kd}});if(!kn){for(var j5=kg-1;j5>=kh;j5--){kn=this.fromPixelToLatLng(new fa(j5,ke),{matrixInfo:{modelViewMatrix:kd}});if(kn!==null){break}}}}if(kn){if(ki.getLngSpan(kn.lng)>ki.getLngSpan(kc)){kc=kn.lng}if(kn.lat 5.0 && uEarthZoom < 6.0){"," atmosphereAlpha = 6.0 - uEarthZoom;"," }"," float cloudDisplayAlpha = 1.0;"," if (uEarthZoom > 1.0 && uEarthZoom < 2.0){"," cloudDisplayAlpha = 2.0 - uEarthZoom;"," }"," vec3 diffuseDay = (cloudDiffuse * cloudAlpha * cloudDisplayAlpha + "," texture2D(uSampler, vTextureCoord) * (1.0 - cloudAlpha * cloudDisplayAlpha)).rgb;"," vec3 diffuseNight = texture2D( uSamplerNight, vTextureCoord ).rgb;"," vec3 day = diffuseDay * c0;"," vec3 night = 1.3 * diffuseNight * (1.0 - c0);"," if (uEarthZoom > uEarthZoomForNight) {"," gl_FragColor = vec4(c1, 1.0) * atmosphereAlpha + vec4(day, 1.0);"," }"," else {"," gl_FragColor = vec4(c1, 1.0) + vec4(day + night, 1.0);"," }","}"].join("\\n");fy.VS_SHADER_HIGH_LEVEL_TEXT=["precision highp float;","attribute vec3 aVertexPosition;","attribute vec2 aVertexTextureCoord;","varying vec2 vTextureCoord;","uniform mat4 uMVMatrix;","uniform mat4 uPMatrix;","void main(void) {"," gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);"," vTextureCoord = aVertexTextureCoord;","}"].join("\\n");fy.FS_SHADER_HIGH_LEVEL_TEXT=["precision highp float;","varying vec2 vTextureCoord;","uniform sampler2D uSampler;","uniform bool uUseColor;","void main(void) {"," if (uUseColor == true) {"," gl_FragColor = vec4(.11, .13, .23, 1.0);"," return;"," }"," gl_FragColor = texture2D(uSampler, vTextureCoord);","}"].join("\\n");eP.extend(fy.prototype,{_init:function(){this._initShaders();this._getAllUniforms();this._getAttribLocation();this._initShaders(true);this._getAllUniforms(true);this._getAttribLocation(true);this._sphere=this._earth._sphere},_initShaders:function(jY){var jW=this._gl;var e;var T;if(!jY){e=fy.VS_SHADER_TEXT;T=fy.FS_SHADER_TEXT;this._glProgram1=jW.createProgram();this._glProgram=this._glProgram1}else{e=fy.VS_SHADER_HIGH_LEVEL_TEXT;T=fy.FS_SHADER_HIGH_LEVEL_TEXT;this._glProgram2=jW.createProgram();this._glProgram=this._glProgram2}var jX=this._glProgram;var jV=this._makeShader(e,jW.VERTEX_SHADER);var i=this._makeShader(T,jW.FRAGMENT_SHADER);jW.attachShader(jX,jV);jW.attachShader(jX,i);jW.bindAttribLocation(jX,0,"aVertexPosition");jW.linkProgram(jX);jW.useProgram(jX)},_makeShader:function(jV,e){var T=this._gl;var i=T.createShader(e);T.shaderSource(i,jV);T.compileShader(i);return i},_getAllUniforms:function(jW){var jV=this._glProgram;var T=this._gl;jV.pMatrixUniform=T.getUniformLocation(jV,"uPMatrix");jV.mvMatrixUniform=T.getUniformLocation(jV,"uMVMatrix");jV.sampler=T.getUniformLocation(jV,"uSampler");if(!jW){jV.samplerCloud=T.getUniformLocation(jV,"uSamplerCloud");jV.samplerNight=T.getUniformLocation(jV,"uSamplerNight");jV.drawCloud=T.getUniformLocation(jV,"uDrawCloud");jV.nMatrixUniform=T.getUniformLocation(jV,"uNMatrix");jV.earthZoom=T.getUniformLocation(jV,"uEarthZoom");jV.earthZoomForNight=T.getUniformLocation(jV,"uEarthZoomForNight");var i=this._atUniformsCommon;for(var e in i){eJ(T,jV,e)}i=this._atUniformsGround;for(e in i){eJ(T,jV,e)}i=this._atUniforms;for(e in i){eJ(T,jV,e)}}jV.useColor=T.getUniformLocation(jV,"uUseColor")},_setUniforms:function(){var jW=this._glProgram;var jV=this._gl;var T=this._earth.getZoom();jV.uniformMatrix4fv(jW.pMatrixUniform,false,this._pMatrix);if(T>15){jV.uniformMatrix4fv(jW.mvMatrixUniform,false,this._mvMatrixCamera)}else{jV.uniformMatrix4fv(jW.mvMatrixUniform,false,this._mvMatrix)}if(T<6){mat4.invert(this._nMatrix,this._mvMatrix);mat4.transpose(this._nMatrix,this._nMatrix);jV.uniformMatrix4fv(jW.nMatrixUniform,false,this._nMatrix);jV.uniform1f(jW.earthZoom,Math.round(T*1000)/1000);jV.uniform1f(jW.earthZoomForNight,this._earth.zoomForNight);var i=this._atUniformsCommon;for(var e in i){bX(jV,jW,e,i[e].value,i[e].type)}i=this._atUniformsGround;for(e in i){bX(jV,jW,e,i[e].value,i[e].type)}i=this._atUniforms;for(e in i){bX(jV,jW,e,i[e].value,i[e].type)}}},_getAttribLocation:function(T){var e=this._gl;var i=this._glProgram;i.vertexPositionAttribute=e.getAttribLocation(i,"aVertexPosition");i.vertexTexCoordAttribute=e.getAttribLocation(i,"aVertexTextureCoord");if(!T){i.cloudTexCoordAttribute=e.getAttribLocation(i,"aCloudTextureCoord")}},onStatusChange:function(i){this._camera=i;this._pMatrix=i.getProjectionMatrix();this._mvMatrix=i.getModelViewMatrix();var e=this._earth.getZoom();if(e>15){this._mvMatrixCamera=i._mvMatrixForCamera}this._arrCurViewTileModels=this._getCurViewTileModels();if(e<3){this._loadCloudTexture()}if(e<2){this._loadHighResTextures(true);return}var T=this;if(T.ThumbLoadTimer){clearTimeout(T.ThumbLoadTimer)}T.ThumbLoadTimer=setTimeout(function(){T._loadThumbTextures(3);T._loadThumbTextures();T._loadHighResTextures()},10)},_loadCloudTexture:function(){if(this._cloudTextureImage!==null||this._textureInfoPool.getData("cloud")){return}this._cloudTextureImage=new Image();this._cloudTextureImage.crossOrigin="anonymous";var jV=this;var jW=this._gl;this._cloudTextureImage.onload=function(){var jX=dL.utils.createTexture(jW,this);jV._textureInfoPool.setData("cloud",jX);jV._cloudTextureImage=null;jV._earth.fire(new fA("onrefresh"))};var e=this._earth.getContainerSize().height;var T=f3();var i="";if(e>800||T>=hx.HIGH_RES_MIN_RATIO){i=B.imgPath+"tiles/clouds-2k.jpg?20170702"}else{i=B.imgPath+"tiles/clouds.jpg?20170702"}this._cloudTextureImage.src=i},_loadHighResTextures:function(i){var e=this;if(!i&&e.loadTimer){clearTimeout(e.loadTimer)}if(i&&e.loadTimer){return}e.loadTimer=setTimeout(function(){e._loadTextures();e.loadTimer=null;if(e._earth.getZoom()<5&&e._earth._showRealSunlight){e._loadNightTextures()}},200)},_getCurViewTileModels:function(){var jX=this._earth;var jW=jX.scene;var i=jX.getBounds();var jV=false;if(jW.ifXYZInView(0,this._radius,0)){jV="n"}else{if(jW.ifXYZInView(0,-this._radius,0)){jV="s"}}var e=this._sphere;var T=Math.floor(jX.getZoom());var jY=e.getCurViewModels(i,jV,T);return jY},_loadThumbTextures:function(j6){if(this._earth._notLoadThumb){return}var j3=this._arrCurViewTileModels;var T={};var j9=this;function jZ(){j9._thumbLoaded++;j9._earth.fire(new fA("onrefresh"))}for(var j4=0,j2=j3.length;j4=j8+1){var jY=[];var jX=[];var j7=0;for(var kg=0,kc=ke.length;kg15){for(var kd=0,j4=kj.length/3;kd0){j7=j7+e[ka-1].vertex.length/3}for(kd=0,j4=j1.length/3;kd0){jZ=jZ+e[kg-1].index.length*2}kf.drawElements(kf.TRIANGLES,j1.length,kf.UNSIGNED_SHORT,jZ)}}if(jV=j5){var j4=Math.pow(2,ke-j3);var jX=Math.floor(jY/j4);var j0=Math.floor(j1/j4);var kg;var kd=false;if(kc.projType==="er"){if(kc.polar===true){kg=kc.key.replace("_"+ke,"_"+j3);j6=this._textureInfoPool.getData(kg);if(j6){return[j6,kc.textureCoord]}}}else{if(j3<=5){kd=true;if(ke<=5){kg="key_merge_"+jX+"_"+j0+"_"+j3}else{kg=dW.getMergedKey(jX,j0,j3)}}else{kg="key_"+jX+"_"+j0+"_"+j3}}if(kd){j6=this._mergedTextureCache.getData(kg)}else{j6=this._textureInfoPool.getData(kg)}if(j6){var T=jX*j4;var jW=j0*j4;var j9=jY-T;var kb=j1-jW;var j7=j4;var kf=j9/j7;var j2=kb/j7;var e=kc.textureCoord.slice(0);var jV=0;if(kc.textureCoord._dir){jV=kc.textureCoord._dir==="left"?-0.01:0.01;if(kd){jV/=2}}for(var ka=0,j8=e.length;ka5&&kd){var jZ=dW.getMergedTextureOffset(jX,j0);e[ka]=e[ka]/2+jZ[0];e[ka+1]=e[ka+1]/2+jZ[1]}}return[j6,e]}j3--}return null},updateAt:function(){var e=this._atmosphereData;var T=this._earth.getZoom();if(T>1){var i=T-1;i=i>1.2?1.2:i;e.Kr=0.0075-i*0.0005;e.ESun=16-i*1;e.scaleDepth=0.25-i/20;this._atUniforms.fKrESun.value=e.Kr*e.ESun;this._atUniforms.fKmESun.value=e.Km*e.ESun;this._atUniforms.fScaleDepth.value=e.scaleDepth;this._atUniforms.fScaleOverScaleDepth.value=1/(e.outerRadius-e.innerRadius)/e.scaleDepth}}});function b6(e){this._earth=e;var i=this._gl=L(e._canvas);this._overlayManagerGL=new fQ(e);this._layers=e._layers;this._textureInfoPool=new hT(200,{clearCallback:function(T){if(T&&T.texture){i.deleteTexture(T.texture)}}});this._overlayTextureInfo={texture:null,opacity:0,width:0,height:0};this._overlayTextureInfoLOD={texture:null,opacity:0,width:0,height:0};this._imgCache=new hT(150);this._imgToLoad=0;this._preModels={};this.bind()}eP.extend(b6.prototype,{bind:function(){var T=this;function i(jV){T._textureInfoPool.forEach(function(jW){jW.texture=null});T.loadTiles()}function e(jV){if(jV.layer&&!jV.layer.renderer){T._textureInfoPool.clear();T.loadTiles()}}this._earth.on("layer_add",e);this._earth.on("layer_remove",e);this._earth.on("overlaylayer_status_change",i)},prepareData:function(){if(this._tileModels){var jW={};for(var jV=0,e=this._tileModels.length;jV0){jZ._clearWaiting();jZ._startAlphaAnimation()}this._loadTimer=null},1500);for(var jX=0,jV=j0.length;jX0&&this._earth.getImageZoom()>3||this._earth.getZoom()<6){this._overlayManagerGL.generateOverlayTile(this._earth.getImageZoom()-1);var i=this._overlayManagerGL.getOverlayCanvas(true);this._prepareOverlayTexture(i,true)}},loadTile:function(i,jY,jX,T){var jW=this._textureInfoPool.getData(T);if(jW.imageLoad&&jW.texture!==null){if(this._preModels[T]){jW.opacity=1}return}if(this._layers.length<2||!this._layers[1].getTilesUrl){jW.imageLoad=true;clearTimeout(this._loadTimer);return}var jV=this;var e=this._imgCache.getData(T);if(e){jW.imageLoad=true;jV._prepareImgTexture(e,i,jY,jX,T);if(jV._imgToLoad===0){clearTimeout(jV._loadTimer);jV._clearWaiting();jV._startAlphaAnimation()}return}e=new Image();e.crossOrigin="anonymous";this._imgToLoad++;e.onload=function(){jW.imageLoad=true;jV._prepareImgTexture(this,i,jY,jX,T);jV._imgToLoad--;jV._imgCache.setData(T,this);if(jV._imgToLoad===0){clearTimeout(jV._loadTimer);jV._clearWaiting();jV._startAlphaAnimation();if(!jV._earth._firstLayerTilesLoadedTime){var jZ=new fA("onlayertilesload");jZ.layersLoadTime=jV._earth._firstLayerTilesLoadedTime=Date.now()-jV._earth._initStartTime;jV._earth.fire(jZ)}}};e.onerror=function(){jV._earth.fire(new fA("onstreetlayerloaderror"))};e.src=jV._layers[1].getTilesUrl(i,jY,jX)},_prepareImgTexture:function(e,i,jY,jX,T){var jW=this._createTexture(e);var jV=this._textureInfoPool.getData(T);if(jV){jV.texture=jW;jV.waitForOthers=true}},_prepareOverlayTexture:function(T,i){if(!T){return}var jV=this._createTexture(T);var e;if(!i){e=this._overlayTextureInfo}else{e=this._overlayTextureInfoLOD}e.texture=jV;e.waitForOthers=false;e.width=T.width;e.height=T.height;e.fromCol=T.fromCol;e.fromRow=T.fromRow;e.toCol=T.toCol;e.toRow=T.toRow;e.cols=T.cols;e.rows=T.rows},_startAlphaAnimation:function(){var e=this;if(e._ani){e._ani.stop()}e._ani=new fq({duration:400,transition:gq.easeOutQuad,render:function(T,i){e._setTextureOpacity(T)},finish:function(){e._setTextureOpacity(1);e._ani=null},onStop:function(i){e._setTextureOpacity(1);e._ani=null}})},_createTexture:function(T){var i=this._gl;var e=i.createTexture();i.bindTexture(i.TEXTURE_2D,e);i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,true);i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,T);i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE);i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE);i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR);i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR);return e},_clearWaiting:function(){var T=this._tileModels;for(var jW=0,e=T.length;jW15){e.uniformMatrix4fv(i.mvMatrixUniform,false,this._mvMatrixCamera)}else{e.uniformMatrix4fv(i.mvMatrixUniform,false,this._mvMatrix)}},_getAttribLocation:function(){var e=this._gl;var i=this._glProgram;i.vertexPositionAttribute=e.getAttribLocation(i,"aVertexPosition");i.vertexTexCoordAttribute=e.getAttribLocation(i,"aVertexTextureCoord");i.overlayTexCoordAttribute=e.getAttribLocation(i,"aOverlayTextureCoord")},_createBlankTileTexture:function(){var i=this._gl;var e=this._blankTileTexture=i.createTexture();i.bindTexture(i.TEXTURE_2D,e);i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,this._blankTileCanvas);i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE);i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE);i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR);i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR)},onStatusChange:function(i){this._camera=i;this._pMatrix=i.getProjectionMatrix();this._mvMatrix=i.getModelViewMatrix();var e=this._earth.getZoom();var jV=Math.floor(e);if(e>15){this._mvMatrixCamera=i._mvMatrixForCamera}if(jV>=this._earth.zoomForNight+1){var T=this;if(T.loadTimer){clearTimeout(T.loadTimer)}T.loadTimer=setTimeout(function(){if(T._earth.getZoom()2){return}var ks=this._webglState;ks.initAttribute();ks.enableAttribute(j4.vertexPositionAttribute);ks.enableAttribute(j4.vertexTexCoordAttribute);ks.enableAttribute(j4.overlayTexCoordAttribute);ks.disableUnusedAttributes();var ke=this._layerTextureManager.getOverlayTextureInfo();var kd=ke?ke.texture:null;var kq=this._layerTextureManager.getOverlayTextureInfo(true);var jZ=kq?kq.texture:null;var kk=ke;var kp=ke.cols;var jW=ke.rows;var kr=e.getTilt();if(kr===0&&j2){ks.activeTexture(j3.TEXTURE1);j3.bindTexture(j3.TEXTURE_2D,kd||this._blankTileTexture);j3.uniform1i(j4.overlaySampler,1)}for(var ko=0,km=kl.length;ko0&&j2){ks.activeTexture(j3.TEXTURE1);if(T===j5){kk=ke;j3.bindTexture(j3.TEXTURE_2D,kd)}else{kk=kq;j3.bindTexture(j3.TEXTURE_2D,jZ)}j3.uniform1i(j4.overlaySampler,1);kp=kk.cols;jW=kk.rows}var kj=[];for(var kn=0,kg=kc.length/3;kn15){var j7=[kc[kn*3],kc[kn*3+1],kc[kn*3+2]];j7=ao(j7,e.rotationInfo);kj.push(j7[0],j7[1],j7[2],ki[kn*2],ki[kn*2+1])}else{kj.push(kc[kn*3],kc[kn*3+1],kc[kn*3+2],ki[kn*2],ki[kn*2+1])}var j9=j0-kk.fromCol;var kb=j6-kk.fromRow;if(j0<=kk.toCol&&j6<=kk.toRow&&j9>=0&&kb>=0&&j2){kj.push(ki[kn*2]/kp+j9/kp,ki[kn*2+1]/jW+kb/jW)}else{kj.push(0,0)}}j3.bindBuffer(j3.ARRAY_BUFFER,this._trianglesVerticeBuffer);if(kj.length>this._float32Array.length){continue}this._float32Array.set(kj);j3.bufferData(j3.ARRAY_BUFFER,this._float32Array,j3.STREAM_DRAW);j3.vertexAttribPointer(j4.vertexPositionAttribute,3,j3.FLOAT,false,28,0);j3.vertexAttribPointer(j4.vertexTexCoordAttribute,2,j3.FLOAT,false,28,12);j3.vertexAttribPointer(j4.overlayTexCoordAttribute,2,j3.FLOAT,false,28,20);j3.bindBuffer(j3.ELEMENT_ARRAY_BUFFER,this._triangleVerticesIndexBuffer);if(kh.length>this._uint16Array.length){continue}this._uint16Array.set(kh);j3.bufferData(j3.ELEMENT_ARRAY_BUFFER,this._uint16Array,j3.STREAM_DRAW);ks.activeTexture(j3.TEXTURE0);if(ka&&jY.waitForOthers===false&&j1){j3.bindTexture(j3.TEXTURE_2D,ka)}else{j3.bindTexture(j3.TEXTURE_2D,this._blankTileTexture)}j3.uniform1i(j4.sampler,0);j3.drawElements(j3.TRIANGLES,kh.length,j3.UNSIGNED_SHORT,0)}}});function fM(T){this._earth=T;this._canvas=T._canvas;var jV=this._gl=T.scene._gl;this._webglState=dL.WebGLState.get(this._gl,T._guid);this._glProgram=null;this._trianglesVerticeBuffer=jV.createBuffer();this._triangleVerticesIndexBuffer=jV.createBuffer();this._float32Array=new Float32Array(120600);this._uint16Array=new Uint16Array(240000);this._atmosphereData={Kr:0.0015,Km:0.00001,ESun:16,g:-0.95,innerRadius:0.992*T.radius,outerRadius:1.02*T.radius,wavelength:[0.65,0.57,0.475],scaleDepth:0.25,mieScaleDepth:0.1};var e=this._atmosphereData;this._uniformsCommon={modelViewMatrix:{type:"mat4",value:mat4.create()},projectionMatrix:{type:"mat4",value:mat4.create()},cameraPosition:{type:"v3",value:vec3.fromValues(0,0,4.4*T.radius)},v3LightPosition:{type:"v3",value:vec3.normalize(vec3.create(),vec3.fromValues(100000000,0,100000000))},v3InvWavelength:{type:"v3",value:vec3.fromValues(1/Math.pow(e.wavelength[0],4),1/Math.pow(e.wavelength[1],4),1/Math.pow(e.wavelength[2],4))},v3LightDirection:{type:"v3",value:vec3.fromValues(0,0,1)},fCameraHeight:{type:"f",value:0},fCameraHeight2:{type:"f",value:0},nSamples:{type:"i",value:3},fSamples:{type:"f",value:3}};this._uniforms={fInnerRadius:{type:"f",value:e.innerRadius},fInnerRadius2:{type:"f",value:e.innerRadius*e.innerRadius},fOuterRadius:{type:"f",value:e.outerRadius},fOuterRadius2:{type:"f",value:e.outerRadius*e.outerRadius},fKrESun:{type:"f",value:e.Kr*e.ESun},fKmESun:{type:"f",value:e.Km*e.ESun},fKr4PI:{type:"f",value:e.Kr*4*Math.PI},fKm4PI:{type:"f",value:e.Km*4*Math.PI},fScale:{type:"f",value:1/(e.outerRadius-e.innerRadius)},fScaleDepth:{type:"f",value:e.scaleDepth},fScaleOverScaleDepth:{type:"f",value:1/(e.outerRadius-e.innerRadius)/e.scaleDepth},g:{type:"f",value:e.g},g2:{type:"f",value:e.g*e.g},nSamples:{type:"i",value:3},fSamples:{type:"f",value:3},fNightScale:{type:"f",value:6}};this._atUniformsGround={cameraPositionGround:{type:"v3",value:vec3.fromValues(0,0,4.4*T.radius)},v3LightPositionGround:{type:"v3",value:vec3.normalize(vec3.create(),vec3.fromValues(100000000,0,100000000))},fCameraHeightGround:{type:"f",value:0},fCameraHeight2Ground:{type:"f",value:0}};this._lightForAni=vec3.create();this._lightForAniGround=vec3.create();this._processApart=false;this._initialized=false;var i=this;setTimeout(function(){i._init()},200);this.zIndex=2}fM.VS_SHADER_TEXT=["precision highp float;","attribute vec3 position;","uniform vec3 cameraPosition;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform vec3 v3LightPosition;","uniform vec3 v3LightPositionGround;","uniform vec3 v3InvWavelength;","uniform float fCameraHeight;","uniform float fCameraHeight2;","uniform float fCameraHeightGround;","uniform float fCameraHeight2Ground;","uniform float fOuterRadius;","uniform float fOuterRadius2;","uniform float fInnerRadius;","uniform float fInnerRadius2;","uniform float fKrESun;","uniform float fKmESun;","uniform float fKr4PI;","uniform float fKm4PI;","uniform float fScale;","uniform float fScaleDepth;","uniform float fScaleOverScaleDepth;","const int nSamples = 3;","const float fSamples = 3.0;","varying vec3 v3Direction;","varying vec3 c0;","varying vec3 c1;","float scale(float fCos) {"," float x = 1.0 - fCos;"," return fScaleDepth * exp(-0.00287 + x*(0.459 + x*(3.83 + x*(-6.80 + x*5.25))));","}","void main(void) {"," vec3 v3Ray = position - cameraPosition;"," float fFar = length(v3Ray);"," v3Ray /= fFar;"," float B = 2.0 * dot(cameraPosition, v3Ray);"," float C = fCameraHeight2 - fOuterRadius2;"," float fDet = max(0.0, B * B - 4.0 * C);"," float fNear = 0.5 * (-B - sqrt(fDet));"," vec3 v3Start = cameraPosition + v3Ray * fNear;"," fFar -= fNear;"," float fStartAngle = dot(v3Ray, v3Start) / fOuterRadius;"," float fStartDepth = exp(-1.0 / fScaleDepth);"," float fStartOffset = fStartDepth * scale(fStartAngle);"," float fSampleLength = fFar / fSamples;"," float fScaledLength = fSampleLength * fScale;"," vec3 v3SampleRay = v3Ray * fSampleLength;"," vec3 v3SamplePoint = v3Start + v3SampleRay * 0.5;"," vec3 v3FrontColor = vec3(0.0, 0.0, 0.0);"," for(int i = 0; i < nSamples; i++) {"," float fHeight = length(v3SamplePoint);"," float fDepth = exp(fScaleOverScaleDepth * (fInnerRadius - fHeight));"," float fLightAngle = dot(v3LightPosition, v3SamplePoint) / fHeight;"," float fCameraAngle = dot(v3Ray, v3SamplePoint) / fHeight;"," float fScatter = (fStartOffset + fDepth * (scale(fLightAngle) - scale(fCameraAngle)));"," vec3 v3Attenuate = exp(-fScatter * (v3InvWavelength * fKr4PI + fKm4PI));"," v3FrontColor += v3Attenuate * (fDepth * fScaledLength);"," v3SamplePoint += v3SampleRay;"," }"," gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);"," c0 = v3FrontColor * (v3InvWavelength * fKrESun);"," c1 = v3FrontColor * fKmESun;"," v3Direction = cameraPosition - position;","}",].join("\\n");fM.FS_SHADER_TEXT=["precision highp float;","uniform float g;","uniform float g2;","uniform vec3 v3LightDirection;","varying vec3 v3Direction;","varying vec3 c0;","varying vec3 c1;","float getMiePhase(float fCos, float fCos2, float g, float g2) {"," return 1.5 * ((1.0 - g2) / (2.0 + g2)) * (1.0 + fCos2) / pow(1.0 + g2 - 2.0 * g * fCos, 1.5);","}","float getRayleighPhase(float fCos2) {"," return 0.75 + 0.75 * fCos2;","}","void main (void) {"," float fCos = dot(v3LightDirection, v3Direction) / length(v3Direction);"," float fCos2 = fCos * fCos;"," vec3 color = getRayleighPhase(fCos2) * c0 + getMiePhase(fCos, fCos2, g, g2) * c1;"," if (color.r == 0.0 && color.g == 0.0 && color.b == 0.0) {"," discard;"," }"," gl_FragColor = vec4(color, color.b);","}"].join("\\n");eP.extend(fM.prototype,{_init:function(){var i=new hd(515,{latSpan:50});var e=eP.Platform.macintosh?128:64;i.setSegments(e,e/6);this._ringData=i.generateAllVertex();this._initShaders();this._getAllUniforms();this._getAttribLocation();this._initialized=true;this._earth.fire(new fA("onforcerefresh"))},_initShaders:function(){var e=fM.VS_SHADER_TEXT;var T=fM.FS_SHADER_TEXT;var jW=this._gl;var jX=this._glProgram=jW.createProgram();var jV=this._makeShader(e,jW.VERTEX_SHADER);var i=this._makeShader(T,jW.FRAGMENT_SHADER);jW.attachShader(jX,jV);jW.attachShader(jX,i);jW.bindAttribLocation(jX,0,"aVertexPosition");jW.linkProgram(jX);jW.useProgram(jX)},_makeShader:function(jV,e){var T=this._gl;var i=T.createShader(e);T.shaderSource(i,jV);T.compileShader(i);return i},_getAllUniforms:function(){var jV=this._glProgram;var T=this._gl;var i=this._uniformsCommon;for(var e in i){eJ(T,jV,e)}i=this._uniforms;for(e in i){eJ(T,jV,e)}i=this._atUniformsGround;for(e in i){eJ(T,jV,e)}},_getAttribLocation:function(){var i=this._glProgram;var e=this._gl;i.vertexPositionAttribute=e.getAttribLocation(i,"position")},onStatusChange:function(T){if(!this._initialized){return}var jV=this._earth.getZoom();if(jV>=6){return}this._preZoom=this._zoom||jV;this._zoom=jV;this._camera=T;var i=this._earth.zoomForNight;if(this._sunLightAni){if(this._preZoomjV&&this._aniDir==="out"||this._preZoom===jV){return}}if(this._preZoom<=i&&jV>i){this._sunLightAni&&this._sunLightAni.stop();this._startZoomInLightAnimation(T);return}if(jV<=i&&this._preZoom>i){this._sunLightAni&&this._sunLightAni.stop();this._startZoomOutLightAnimation(T);return}var jX=vec3.create();var jW=T.getPositionForAt();var e=vec3.create();if(jV<=i){vec3.normalize(jX,T.getLightPositionForAt());vec3.normalize(e,T.getLightPosition())}else{vec3.normalize(jX,jW);vec3.normalize(e,T.getPosition())}this._setAtUniforms(jX,e)},_startZoomInLightAnimation:function(T){this._aniDir="in";var i=this._lightForAni;var e=this._lightForAniGround;if(i[0]===0&&i[1]===0&&i[2]===0){vec3.normalize(i,T.getLightPositionForAt());vec3.normalize(e,T.getLightPosition())}var jV=this;this._sunLightAni=new fq({duration:800,transition:gq.easeOutCubic,render:function(jY,jX){if(jY===0){return}var j1=jV._camera.getPositionForAt();var jZ=vec3.normalize(vec3.create(),j1);var j0=jV._camera.getPosition();var jW=vec3.normalize(vec3.create(),j0);i[0]=0.9*i[0]+0.1*jZ[0];i[1]=0.9*i[1]+0.1*jZ[1];i[2]=0.9*i[2]+0.1*jZ[2];e[0]=0.9*e[0]+0.1*jW[0];e[1]=0.9*e[1]+0.1*jW[1];e[2]=0.9*e[2]+0.1*jW[2];jV._setAtUniforms(i,e);jV._earth.fire(new fA("onrefresh"))},finish:function(){jV._earth.fire(new fA("onanimation_end"));jV._sunLightAni=null},onStop:function(jW){jV._earth.fire(new fA("onanimation_end"));jV._sunLightAni=null}})},_startZoomOutLightAnimation:function(jY){this._aniDir="out";var e=jY.getPositionForAt();var i=vec3.normalize(vec3.create(),e);var jZ=jY.getPosition();var j2=vec3.normalize(vec3.create(),jZ);var jW=this._lightForAni;var T=this._lightForAniGround;if(jW[0]===0&&jW[1]===0&&jW[2]===0||this._sunLightAni===null){vec3.copy(jW,i);vec3.copy(T,j2)}var j5=vec3.copy(vec3.create(),jW);var jX=vec3.create();vec3.normalize(jX,jY.getLightPositionForAt());var j4=[jX[0]-j5[0],jX[1]-j5[1],jX[2]-j5[2]];var jV=vec3.copy(vec3.create(),T);var j1=vec3.create();vec3.normalize(j1,jY.getLightPosition());var j3=[j1[0]-jV[0],j1[1]-jV[1],j1[2]-jV[2]];var j0=this;this._sunLightAni=new fq({duration:800,transition:gq.easeOutCubic,render:function(j9,j8){if(j9===0){return}var j7=j0._lightForAni;var j6=j0._lightForAniGround;j7[0]=j5[0]+j9*j4[0];j7[1]=j5[1]+j9*j4[1];j7[2]=j5[2]+j9*j4[2];j6[0]=jV[0]+j9*j3[0];j6[1]=jV[1]+j9*j3[1];j6[2]=jV[2]+j9*j3[2];j0._setAtUniforms(j7,j6);j0._earth.fire(new fA("onrefresh"))},finish:function(){j0._earth.fire(new fA("onanimation_end"));j0._sunLightAni=null},onStop:function(j6){j0._earth.fire(new fA("onanimation_end"));j0._sunLightAni=null}})},_setAtUniforms:function(T,i){var jW=this._camera;var jZ=this._uniformsCommon;jZ.projectionMatrix.value=jW.getProjectionMatrix();jZ.modelViewMatrix.value=jW.getModelViewMatrixForAt();var jY=jW.getPositionForAt();var jX=jW.getPosition();jZ.cameraPosition.value=jY;var e=vec3.len(jY);jZ.fCameraHeight.value=e;jZ.fCameraHeight2.value=e*e;jZ.v3LightPosition.value=T;jZ.v3LightDirection.value=T;var jV=this._atUniformsGround;jV.cameraPositionGround.value=jX;e=vec3.len(jX);jV.fCameraHeightGround.value=e;jV.fCameraHeight2Ground.value=e*e;jV.v3LightPositionGround.value=i},renderFrame:function(){if(!this._initialized||this._earth.getZoom()>=6){return}var e=this._earth.getBounds();if(e.holeAtTopLeft===false){return}var T=this._gl;T.useProgram(this._glProgram);var i=this._webglState;i.enableCap("depthTest");i.depthMask(false);i.enableCap("cullFace");i.frontFace(T.CCW);i.cullFace(T.FRONT);i.blendFunc(T.SRC_ALPHA,T.ONE);i.initAttribute();i.enableAttribute(this._glProgram.vertexPositionAttribute);i.disableUnusedAttributes();this._setUniforms();this._renderSphere()},_setUniforms:function(){var jV=this._glProgram;var T=this._gl;var i=this._uniformsCommon;for(var e in i){bX(T,jV,e,i[e].value,i[e].type)}i=this._uniforms;for(var e in i){bX(T,jV,e,i[e].value,i[e].type)}},_renderSphere:function(){var jV=this._ringData;var i=jV.vertex;var e=jV.indice;var T=this._gl;this._float32Array.set(i);T.bindBuffer(T.ARRAY_BUFFER,this._trianglesVerticeBuffer);T.bufferData(T.ARRAY_BUFFER,this._float32Array,T.STREAM_DRAW);if(this._triangleVerticesIndexBuffer.vertexCount!=e.length){T.bindBuffer(T.ELEMENT_ARRAY_BUFFER,this._triangleVerticesIndexBuffer);this._uint16Array.set(e);T.bufferData(T.ELEMENT_ARRAY_BUFFER,this._uint16Array,T.STREAM_DRAW);this._triangleVerticesIndexBuffer.vertexCount=e.length}var jW=this._glProgram;T.bindBuffer(T.ARRAY_BUFFER,this._trianglesVerticeBuffer);T.bindBuffer(T.ELEMENT_ARRAY_BUFFER,this._triangleVerticesIndexBuffer);T.vertexAttribPointer(jW.vertexPositionAttribute,3,T.FLOAT,false,0,0);T.drawElements(T.TRIANGLES,this._triangleVerticesIndexBuffer.vertexCount,T.UNSIGNED_SHORT,0)}});function em(T,e){this._earth=T;this._layer=e;this._canvas=T._canvas;var i=this._ratio=this._earth.scene._ratio;this._width=this._canvas.width/i;this._height=this._canvas.height/i;var jV=this._gl=T.scene._gl;this._webglState=dL.WebGLState.get(jV,T._guid);this._textTextureManager=new dL.TextTextureManager(jV,{width:e._textTextureImgWidth,height:e._textTextureImgHeight,name:"earth-text"});this._currentRenderTexture=null;this._glProgram=null;this._sphere=T._sphere;this._pMatrix=mat4.create();this._mvMatrix=mat4.create();this._mvMatrixCamera=mat4.create();this._trianglesVerticeBuffer=jV.createBuffer();this._iconTextureManager=new dL.TextTextureManager(jV,{width:1024,height:1024,name:"earth-icon"});this._iconTextureAtlas=this._iconTextureManager.getEmptyTexture();this._iconTextureAtlasOffset={};this._iconTextureAtlasCoords={};this.zIndex=15;this._textureInfoPool=new hT(350);this._enabled=true;this._collisionRet=[];this._loadedCount=0;this._refreshTimer=null;this._float32Array=new Float32Array(2000);this.curSpotAdded=false;this._init()}em.VS_SHADER_TEXT=["precision highp float;","attribute vec3 aVertexPosition;","attribute vec2 aVertexTextureCoord;","varying vec2 vTextureCoord;","uniform mat4 uMVMatrix;","uniform mat4 uPMatrix;","void main(void) {"," gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);"," vTextureCoord = aVertexTextureCoord;","}"].join("\\n");em.FS_SHADER_TEXT=["precision highp float;","uniform sampler2D uSampler;","varying vec2 vTextureCoord;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord);","}"].join("\\n");eP.extend(em.prototype,{_init:function(){this._initShaders();this._getAllUniforms();this._getAttribLocation();mat4.translate(this._mvMatrix,this._mvMatrix,[-this._width/2,-this._height/2,0]);mat4.ortho(this._pMatrix,-this._width/2,this._width/2,-this._height/2,this._height/2,800,-800);var e=this;this._currentRenderTexture=e._textTextureManager.getEmptyTexture();var i=this._earth.getMap();var e=this;i.on("maptypechange",function(T){if(T.mapType===BMAP_EARTH_MAP){e._isMapTypeChange=true;e._arrCurViewTileModels=null;e._collisionRet=[];e._earth.fire(new fA("onrefresh"))}});i.on("streetlayer_show",function(T){if(this.mapType===BMAP_EARTH_MAP){if(!e._camera){return}e._isStreetLayerChange=true;e._arrCurViewTileModels=null;e._collisionRet=[];e.onStatusChange(e._camera);e._earth.fire(new fA("onrefresh"))}});i.on("mousemove",function(){if(this.mapType!==BMAP_EARTH_MAP){return}if(e.curSpotAdded){return}if(this.currentOperation!==d6.idle){return}e._refreshSpotData();this.temp.isPermitSpotOver=true;e.curSpotAdded=true})},_refreshSpotData:function(){this._spotData=[];var T=this._collisionRet||[];for(var jX=0;jX"):"";if(i.iconPos&&i.iconPos.iconType.indexOf("ditie")>-1&&jW.getZoom()>14){e=""}var jV={n:e,px:i.scrPt,bd:i.bds,pt:T,userdata:{iconPoint:T,uid:i.guid,name:e,mapPoi:true,type:i.iconPos?i.iconPos.iconType:"",tilePosStr:i.tilePosStr},tag:"MAP_SPOT_INFO"};return jV},_initShaders:function(){var i=em.VS_SHADER_TEXT;var jW=em.FS_SHADER_TEXT;var jV=this._gl;var jX=this._glProgram=jV.createProgram();var T=this._makeShader(i,jV.VERTEX_SHADER);var e=this._makeShader(jW,jV.FRAGMENT_SHADER);jV.attachShader(jX,T);jV.attachShader(jX,e);jV.linkProgram(jX);jV.useProgram(jX)},_makeShader:function(jV,e){var T=this._gl;var i=T.createShader(e);T.shaderSource(i,jV);T.compileShader(i);return i},_getAllUniforms:function(){var i=this._glProgram;var e=this._gl;i.pMatrixUniform=e.getUniformLocation(i,"uPMatrix");i.mvMatrixUniform=e.getUniformLocation(i,"uMVMatrix");i.sampler=e.getUniformLocation(i,"uSampler")},_setUniforms:function(){var i=this._glProgram;var e=this._gl;e.uniformMatrix4fv(i.pMatrixUniform,false,this._pMatrix);e.uniformMatrix4fv(i.mvMatrixUniform,false,this._mvMatrix)},_setPerpectiveUniforms:function(){var i=this._glProgram;var e=this._gl;e.uniformMatrix4fv(i.pMatrixUniform,false,this._pMatrix2);if(this._earth.getZoom()>15){e.uniformMatrix4fv(i.mvMatrixUniform,false,this._mvMatrixCamera)}else{e.uniformMatrix4fv(i.mvMatrixUniform,false,this._mvMatrix2)}},_getAttribLocation:function(){var i=this._glProgram;var e=this._gl;i.vertexPositionAttribute=e.getAttribLocation(i,"aVertexPosition");i.vertexTexCoordAttribute=e.getAttribLocation(i,"aVertexTextureCoord")},resize:function(){this._width=this._canvas.width/this._ratio;this._height=this._canvas.height/this._ratio;mat4.identity(this._mvMatrix);mat4.translate(this._mvMatrix,this._mvMatrix,[-this._width/2,-this._height/2,0]);mat4.ortho(this._pMatrix,-this._width/2,this._width/2,-this._height/2,this._height/2,800,-800);this._layer._lineLabelMagRatio=700*0.5/this._height},enable:function(){this._enabled=true},disable:function(){this._enabled=false},setTextureInfoRes:function(e,T){this._loadedCount--;this.curSpotAdded=false;this._textureInfoPool.setData(e,T);if(this._loadedCount===0){this._updateLabelData();this._earth.fire(new fA("onrefresh"));if(this._refreshTimer){clearTimeout(this._refreshTimer)}}else{if(this._refreshTimer===null){var i=this;this._refreshTimer=setTimeout(function(){i._updateLabelData();i._earth.fire(new fA("onrefresh"));i._refreshTimer=null},200)}}},addTextTexture:function(e,i){if(this._arrCurViewTileModels&&this._arrCurViewTileModels.textureInfo){return this._arrCurViewTileModels.textureInfo.addTexture(e,i)}return this._currentRenderTexture.addTexture(e,i)},onStatusChange:function(T){if(!this._enabled){return}this._camera=T;this._pMatrix2=T.getProjectionMatrix();this._mvMatrix2=T.getModelViewMatrix();this._mvMatrixCamera=T._mvMatrixForCamera;var i=this._earth.getZoom();this._isZoomOut=!!(i-this._lastZoom<0);this._isZoomLarge=!!(Math.abs(i-this._lastZoom)>2);this._lastZoom=i;if(i>=this._earth.zoomForNight+1){var jV=this;var e=jV._layer;if(jV.loadTimer){clearTimeout(jV.loadTimer)}jV.loadTimer=setTimeout(function(){if(jV._earth.getZoom()180||jV._currentRenderTexture.getUsage()>0.8){jV._arrCurViewTileModels.textureInfo=jV._textTextureManager.getEmptyTexture();jV._textureInfoPool.clear()}jV._loadCurViewData();jV.loadTimer=null},240)}else{this._arrCurViewTileModels=null;this._collisionRet=[]}this._updateScreenPixel();if(!this._locked&&this._isZoomOut){if(this._collisionRet&&this._collisionRet._arrLabels){this._layer.collisionTestByZoomingOut(this._collisionRet._arrLabels,this._height)}this._isZoomOut=false}},_updateScreenPixel:function(){if(!this._collisionRet){return}var jX=false;var j1=this._earth;if(j1.getZoom()<=6){jX=true}var jW=j1.getCenter();for(var jV=0;jV15){var j0=j1.scene.fromLatLngToXYZ(jZ.latLng);j0=ao(j0,j1.rotationInfo);jZ.scrPt=j1.scene.fromXYZToPixel(j0[0],j0[1],j0[2],{matrixInfo:{modelViewMatrix:j1.scene._camera._mvMatrixForCamera}})}else{jZ.scrPt=j1.fromLatLngToPixel(jZ.latLng,{isCalcOnBack:jX})}}}},getStatusChangeEvent:function(){return this._statusChangeEvt},_loadCurViewData:function(){var j1=this;var jZ=j1._layer;var j2=this._arrCurViewTileModels;if(this._earth._notLoadHigh||!j2){return}for(var jY=0,jX=j2.length;jY0){j1._updateLabelData();j1._earth.fire(new fA("onrefresh"))}j1._waitTimer=setTimeout(function(){if(j1._loadedCount>0){j1._updateLabelData();j1._earth.fire(new fA("onrefresh"))}j1._waitTimer=null},3000)},400)},renderFrame:function(){var T=this._earth._map;if(!T._displayOptions.poi){return}var j1=this._arrCurViewTileModels;if(!this._enabled||!j1||j1.length===0){return}var e=this._earth.getZoom();if(e=3){this._collisionRet=[];return}var jY=this._gl;var jX=this._glProgram;var i=this._webglState;var jZ=this._layer;jY.useProgram(jX);i.disableCap("depthTest");i.enableCap("blend");i.enableCap("cullFace");i.cullFace(jY.BACK);i.initAttribute();i.enableAttribute(jX.vertexPositionAttribute);i.enableAttribute(jX.vertexTexCoordAttribute);i.disableUnusedAttributes();var j0=this._renderLineLabelFrame(jY,jX,this._collisionRet,false);this._renderFixedLabelFrame(jY,jX,this._collisionRet,false,j0);var j2=this._earth;if(!j2._firstLabelLoadedTime&&this._collisionRet.length>0){var j3=new fA("onearthlabelloaded");j3.initTime=j2._initFinishTime-j2._initStartTime;j3.loadTime=j2._firstLabelLoadedTime=Date.now()-j2._initStartTime;j2.fire(j3)}},_updateLabelData:function(){this._collisionRet=this._layer.collisionTest(this._arrCurViewTileModels,this._textureInfoPool,this._height);if(this._arrCurViewTileModels&&this._arrCurViewTileModels.textureInfo){if(this._currentRenderTexture){this._textTextureManager.free(this._currentRenderTexture)}this._currentRenderTexture=this._arrCurViewTileModels.textureInfo;this._arrCurViewTileModels.textureInfo=null}},_renderFixedLabelFrame:function(j5,jZ,e,T,j8){var j7=this._iconTextureAtlas.getTexture();var j6=this._layer;var j9=this._float32Array;var j4=[];var jY=[];for(var j3=0,jX=e.length;j30){j4=j4.concat(jV)}if(j2.length>0){jY=jY.concat(j2)}}if(jY.length===0&&j4.length===0){return}this._setUniforms();if(this._currentRenderTexture&&jY.length>0){j5.bindBuffer(j5.ARRAY_BUFFER,this._trianglesVerticeBuffer);if(jY.length0){jV=jV.concat(j0)}}if(jV.length===0){return false}this._setPerpectiveUniforms();j2.bindBuffer(j2.ARRAY_BUFFER,this._trianglesVerticeBuffer);if(jV.length=2){return}if(!this._initialized){return}this._camera=i;this._pMatrix=i.getProjectionMatrix();this._mvMatrix=i.getModelViewMatrix();this._calculateCelestialSpherePos();var e=this._getColAndRow();this._faceRange=e[0];this._imgRange=e[1]},_calculateCelestialSpherePos:function(){var jW=this._camera;var jY=this._textureTransform.rotateX;var jX=this._textureTransform.rotateY;var j1=jW.getSunZenith();var j2=jW.getPosition();var e=jW._date;var jV=e.getFullYear();var i=Math.floor(jV%100*0.2422+20.646)-Math.floor(jV%100/4);var j0=new Date(jV,2,i);var jZ=e-j0;var T=Math.floor(jZ/1000/60/60/24)/365.25*360;mat4.identity(this._mMatrixMilky);mat4.translate(this._mMatrixMilky,this._mMatrixMilky,j2);mat4.rotate(this._mMatrixMilky,this._mMatrixMilky,im(195+j1.lng-T),[0,1,0]);mat4.rotate(this._mMatrixMilky,this._mMatrixMilky,im(jY),[1,0,0]);mat4.rotate(this._mMatrixMilky,this._mMatrixMilky,im(jX),[0,1,0])},renderFrame:function(){if(this._earth.getZoom()>=2){return}if(!this._initialized){return}var kb=this._gl;var j1=this._glProgram;kb.useProgram(j1);var jX=this._webglState;jX.initAttribute();jX.enableAttribute(j1.vertexPositionAttribute);jX.enableAttribute(j1.vertexTexCoordAttribute);jX.disableUnusedAttributes();var j8=this._faceRange;if(!this._faceRange){return}var j3=this._rows;var j5=this._cols;var j9=j8[0];var j7=j8[1];var kc=j8[2];var ka=j8[3];var j6=this._texturesInfo;if(!j6||!j6.done){return false}jX.enableCap("cullFace");jX.cullFace(kb.BACK);jX.disableCap("depthTest");jX.depthMask(true);this._justBindTexture(j6.texture);this._setUniforms();kb.uniform1f(j1.alpha,(1-(this._earth.getZoom()-1))*0.6);kb.uniform1i(j1.renderSun,false);kb.uniformMatrix4fv(j1.mMatrixUniform,false,this._mMatrixMilky);for(var jZ=kc;jZ<=ka;jZ++){var T=j9;var jW=j7;if(typeof this._vertexFromRow==="number"&&jZ>=this._vertexFromRow&&jZ<=this._vertexToRow){T=0;jW=this._cols-1}for(var jY=T;jY<=jW;jY++){var j0=jY;while(j0<0){j0+=this._cols}j0=j0%this._cols;var kd=this._getVertex(j0,jZ);var j4=this._sphere.facesVertexIndice;var e=this._getTextureCoord(j0,jZ,1);this._setupBuffers(kd,j4,e);this._draw()}}if(!this._sunTexture.done){return}this._justBindTexture(this._sunTexture.texture);this._setupBuffers(this._vertexForSun,this._indiceForSun,this._coordsForSun);if(!this._sunLightPos){this._sunLightPos=vec3.normalize(vec3.create(),this._camera.getLightPosition());var j2=Math.sqrt(1-this._sunLightPos[1]*this._sunLightPos[1]);var ke=this._sunLightPos[2]/j2;ke=ke>1?1:ke;ke=ke<-1?-1:ke;var jV=Math.acos(ke);if(this._sunLightPos[0]<0){jV=im(360)-jV}var kf=Math.asin(this._sunLightPos[1]);mat4.identity(this._mMatrixSun);mat4.rotate(this._mMatrixSun,this._mMatrixSun,jV,[0,1,0]);mat4.rotate(this._mMatrixSun,this._mMatrixSun,kf,[-1,0,0])}var i=this._earth;if(i._firstAni){kb.uniform1f(j1.alpha,1)}else{kb.uniform1f(j1.alpha,(1-(i.getZoom()-1)))}kb.uniform1i(j1.renderSun,true);kb.uniformMatrix4fv(j1.mMatrixUniform,false,this._mMatrixSun);this._draw()},_prepareTexture:function(){var i=this;if(!i._texturesInfo){i._texturesInfo={}}else{return}var e=i._texturesInfo;e.loaded=false;var T=B.imgPath+"tiles/the-milkyway-2k.jpg?20150826";i._loadImage(T,function(jV){e.loaded=true;if(!e.done){i._setupTexture(e,jV);e.done=true}i._earth.fire(new fA("onrefresh"))});i._sunTexture.loaded=false;if(i._earth._showRealSunlight){i._loadImage(B.imgPath+"sun.jpg?20150826",function(jV){i._sunTexture.loaded=true;if(!i._sunTexture.done){i._setupTexture(i._sunTexture,jV);i._sunTexture.done=true}i._earth.fire(new fA("onrefresh"))})}},_loadImage:function(i,T){var e=new Image();e.crossOrigin="anonymous";e._loaded=false;e.onload=function(){T(this);this._loaded=true};e.src=i},_setupTexture:function(i,e){if(!i){return}var jV=this._gl;this._webglState.activeTexture(jV.TEXTURE0);i.texture=jV.createTexture();var T=i.texture;jV.bindTexture(jV.TEXTURE_2D,T);jV.pixelStorei(jV.UNPACK_FLIP_Y_WEBGL,true);jV.texImage2D(jV.TEXTURE_2D,0,jV.RGBA,jV.RGBA,jV.UNSIGNED_BYTE,e);jV.texParameteri(jV.TEXTURE_2D,jV.TEXTURE_WRAP_S,jV.CLAMP_TO_EDGE);jV.texParameteri(jV.TEXTURE_2D,jV.TEXTURE_WRAP_T,jV.CLAMP_TO_EDGE);jV.texParameteri(jV.TEXTURE_2D,jV.TEXTURE_MAG_FILTER,jV.LINEAR);jV.texParameteri(jV.TEXTURE_2D,jV.TEXTURE_MIN_FILTER,jV.LINEAR)},_justBindTexture:function(e){if(!e){return}var i=this._gl;var T=this._glProgram;this._webglState.activeTexture(i.TEXTURE0);i.bindTexture(i.TEXTURE_2D,e);i.uniform1i(T.samplerUniform,0)},_setupBuffers:function(T,e,i){var jV=this._gl;if(!this._trianglesVerticeBuffer){this._trianglesVerticeBuffer=jV.createBuffer()}jV.bindBuffer(jV.ARRAY_BUFFER,this._trianglesVerticeBuffer);this._float32Array.set(T);jV.bufferData(jV.ARRAY_BUFFER,this._float32Array,jV.STREAM_DRAW);if(!this._triangleVerticesIndexBuffer){this._triangleVerticesIndexBuffer=jV.createBuffer();this._triangleVerticesIndexBuffer.vertexCount=e.length;jV.bindBuffer(jV.ELEMENT_ARRAY_BUFFER,this._triangleVerticesIndexBuffer);this._uint16Array.set(e);jV.bufferData(jV.ELEMENT_ARRAY_BUFFER,this._uint16Array,jV.STREAM_DRAW)}if(this._triangleVerticesIndexBuffer.vertexCount!==e.length){this._triangleVerticesIndexBuffer.vertexCount=e.length;jV.bindBuffer(jV.ELEMENT_ARRAY_BUFFER,this._triangleVerticesIndexBuffer);this._uint16Array.set(e);jV.bufferData(jV.ELEMENT_ARRAY_BUFFER,this._uint16Array,jV.STREAM_DRAW)}if(!this._vertexTexCoordBuffer){this._vertexTexCoordBuffer=jV.createBuffer()}jV.bindBuffer(jV.ARRAY_BUFFER,this._vertexTexCoordBuffer);this._float32Array.set(i);jV.bufferData(jV.ARRAY_BUFFER,this._float32Array,jV.STREAM_DRAW)},_getVertex:function(T,jV){var e=a1.H_SEGS/this._cols;var jW=a1.H_SEGS/e;var i=T+jV*jW;return this._sphere.facesVertex[i]},_getTextureCoord:function(e,i){return this._sphere.sphere.generateTextureCoord(1,e,i)},_draw:function(){var e=this._gl;var i=this._glProgram;e.bindBuffer(e.ARRAY_BUFFER,this._trianglesVerticeBuffer);e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this._triangleVerticesIndexBuffer);e.vertexAttribPointer(i.vertexPositionAttribute,3,e.FLOAT,false,0,0);e.bindBuffer(e.ARRAY_BUFFER,this._vertexTexCoordBuffer);e.vertexAttribPointer(i.vertexTexCoordAttribute,2,e.FLOAT,false,0,0);e.drawElements(e.TRIANGLES,this._triangleVerticesIndexBuffer.vertexCount,e.UNSIGNED_SHORT,0)},_getColAndRow:function(){var jV;var jY;var jX;var T;var jZ;var e;var jW;var i;jV=0;jY=this._cols-1;jX=0;T=this._rows-1;jZ=0;e=0;jW=0;i=0;return[[jV,jY,jX,T],[jZ,e,jW,i]]}});function bf(e){this._earth=e;this._radius=6*e.radius;this._canvas=e._canvas;var i=this._gl=e.scene._gl;this._webglState=dL.WebGLState.get(i,e._guid);this._glProgram=null;this._cols=2;this._rows=1;this._mvMatrix=mat4.create();this._mMatrixMilky=mat4.create();this._mMatrixSun=mat4.create();this._pMatrix=mat4.create();this._sunTexture={};this._float32Array=new Float32Array(243);this._uint16Array=new Uint16Array(384);this.zIndex=1;this._textureTransform={rotateX:300.611,rotateY:328.127};this.init()}bf.VS_SHADER_TEXT=["precision mediump float;","attribute vec3 aVertexPosition;","attribute vec2 aVertexTextureCoord;","varying vec2 vTextureCoord;","uniform mat4 uMVMatrix;","uniform mat4 uMMatrix;","uniform mat4 uPMatrix;","void main(void) {"," gl_Position = uPMatrix * uMVMatrix * uMMatrix * vec4(aVertexPosition, 1.0);"," vTextureCoord = aVertexTextureCoord;","}"].join("\\n");bf.FS_SHADER_TEXT=["precision mediump float;","varying vec2 vTextureCoord;","uniform sampler2D uSampler;","uniform float uAlpha;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * uAlpha;","}"].join("\\n");eP.extend(bf.prototype,{init:function(){this._genImgColsRowsInfo();this._initShaders();this._getUniforms();this._getAttribLocation();var e=new a1(this._radius,this._cols,this._rows);var i=e.initSphereFacesIndices();this._sphere={sphere:e,facesVertexIndice:i,facesVertex:e._facesVertex};var T=this;this._earth.on("preload",function(){T._prepareTexture()});this._earth.on("idle",function(){T._prepareTexture()});this._initialized=true},_genImgColsRowsInfo:function(){this._imgColsRows=[];for(var e=2;e<=5;e++){this._imgColsRows[e]={cols:Math.pow(2,e-1),rows:Math.pow(2,e-1)/2}}this._imgColsRows[1]={cols:1,rows:1}},_initShaders:function(){var e=bf.VS_SHADER_TEXT;var T=bf.FS_SHADER_TEXT;var jW=this._gl;var jX=this._glProgram=jW.createProgram();var jV=this._makeShader(e,jW.VERTEX_SHADER);var i=this._makeShader(T,jW.FRAGMENT_SHADER);jW.attachShader(jX,jV);jW.attachShader(jX,i);jW.bindAttribLocation(jX,0,"aVertexPosition");jW.linkProgram(jX);jW.useProgram(jX)},_makeShader:function(jV,e){var T=this._gl;var i=T.createShader(e);T.shaderSource(i,jV);T.compileShader(i);return i},_getUniforms:function(){var i=this._glProgram;var e=this._gl;i.pMatrixUniform=e.getUniformLocation(i,"uPMatrix");i.mvMatrixUniform=e.getUniformLocation(i,"uMVMatrix");i.mMatrixUniform=e.getUniformLocation(i,"uMMatrix");i.samplerUniform=e.getUniformLocation(i,"uSampler");i.alpha=e.getUniformLocation(i,"uAlpha")},_getAttribLocation:function(){var e=this._gl;var i=this._glProgram;i.vertexPositionAttribute=e.getAttribLocation(i,"aVertexPosition");i.vertexTexCoordAttribute=e.getAttribLocation(i,"aVertexTextureCoord")},_setUniforms:function(){var i=this._glProgram;var e=this._gl;e.uniformMatrix4fv(i.pMatrixUniform,false,this._pMatrix);e.uniformMatrix4fv(i.mvMatrixUniform,false,this._mvMatrix)},onStatusChange:function(i){if(this._earth.getZoom()>=6){return}if(!this._initialized){return}this._camera=i;this._pMatrix=i.getProjectionMatrix();this._mvMatrix=i.getModelViewMatrix();this._calculateCelestialSpherePos();var e=this._getColAndRow();this._faceRange=e[0];this._imgRange=e[1]},_calculateCelestialSpherePos:function(){var jW=this._camera;var jY=this._textureTransform.rotateX;var jX=this._textureTransform.rotateY;var j1=jW.getSunZenith();var j2=jW.getPosition();var e=jW._date;var jV=e.getFullYear();var i=Math.floor(jV%100*0.2422+20.646)-Math.floor(jV%100/4);var j0=new Date(jV,2,i);var jZ=e-j0;var T=Math.floor(jZ/1000/60/60/24)/365.25*360;mat4.identity(this._mMatrixMilky);mat4.translate(this._mMatrixMilky,this._mMatrixMilky,j2);mat4.rotate(this._mMatrixMilky,this._mMatrixMilky,im(195+j1.lng-T),[0,1,0]);mat4.rotate(this._mMatrixMilky,this._mMatrixMilky,im(jY),[1,0,0]);mat4.rotate(this._mMatrixMilky,this._mMatrixMilky,im(jX),[0,1,0])},renderFrame:function(){if(this._earth.getZoom()>=5){return}if(!this._initialized){return}var j7=this._gl;var jW=this._glProgram;j7.useProgram(jW);var i=this._webglState;i.initAttribute();i.enableAttribute(jW.vertexPositionAttribute);i.enableAttribute(jW.vertexTexCoordAttribute);i.disableUnusedAttributes();var j4=this._faceRange;if(!this._faceRange){return}var jX=this._rows;var jZ=this._cols;var j5=j4[0];var j3=j4[1];var j9=j4[2];var j6=j4[3];var j1=this._texturesInfo;if(!j1||!j1.done){return false}i.enableCap("cullFace");i.cullFace(j7.BACK);i.disableCap("depthTest");i.depthMask(true);this._justBindTexture(j1.texture);this._setUniforms();j7.uniform1f(jW.alpha,1);j7.uniform1i(jW.renderSun,false);j7.uniformMatrix4fv(jW.mMatrixUniform,false,this._mMatrixMilky);for(var jV=j9;jV<=j6;jV++){var j2=j5;var j8=j3;if(typeof this._vertexFromRow==="number"&&jV>=this._vertexFromRow&&jV<=this._vertexToRow){j2=0;j8=this._cols-1}for(var T=j2;T<=j8;T++){var j0=T;while(j0<0){j0+=this._cols}j0=j0%this._cols;var ka=this._getVertex(j0,jV);var jY=this._sphere.facesVertexIndice;var e=this._getTextureCoord(j0,jV,1);this._setupBuffers(ka,jY,e);this._draw()}}},_prepareTexture:function(){var T=this;if(!T._texturesInfo){T._texturesInfo={}}else{return}var i=T._texturesInfo;i.loaded=false;var e=T._earth._map.config.earthBackground;T._loadImage(e,function(jV){i.loaded=true;if(!i.done){T._setupTexture(i,jV);i.done=true}T._earth.fire(new fA("onrefresh"))})},_loadImage:function(i,T){var e=new Image();e.crossOrigin="anonymous";e._loaded=false;e.onload=function(){T(this);this._loaded=true};e.src=i},_setupTexture:function(i,e){if(!i){return}var jV=this._gl;this._webglState.activeTexture(jV.TEXTURE0);i.texture=jV.createTexture();var T=i.texture;jV.bindTexture(jV.TEXTURE_2D,T);jV.pixelStorei(jV.UNPACK_FLIP_Y_WEBGL,true);jV.texImage2D(jV.TEXTURE_2D,0,jV.RGBA,jV.RGBA,jV.UNSIGNED_BYTE,e);jV.texParameteri(jV.TEXTURE_2D,jV.TEXTURE_WRAP_S,jV.CLAMP_TO_EDGE);jV.texParameteri(jV.TEXTURE_2D,jV.TEXTURE_WRAP_T,jV.CLAMP_TO_EDGE);jV.texParameteri(jV.TEXTURE_2D,jV.TEXTURE_MAG_FILTER,jV.LINEAR);jV.texParameteri(jV.TEXTURE_2D,jV.TEXTURE_MIN_FILTER,jV.LINEAR)},_justBindTexture:function(e){if(!e){return}var i=this._gl;var T=this._glProgram;this._webglState.activeTexture(i.TEXTURE0);i.bindTexture(i.TEXTURE_2D,e);i.uniform1i(T.samplerUniform,0)},_setupBuffers:function(T,e,i){var jV=this._gl;if(!this._trianglesVerticeBuffer){this._trianglesVerticeBuffer=jV.createBuffer()}jV.bindBuffer(jV.ARRAY_BUFFER,this._trianglesVerticeBuffer);this._float32Array.set(T);jV.bufferData(jV.ARRAY_BUFFER,this._float32Array,jV.STREAM_DRAW);if(!this._triangleVerticesIndexBuffer){this._triangleVerticesIndexBuffer=jV.createBuffer();this._triangleVerticesIndexBuffer.vertexCount=e.length;jV.bindBuffer(jV.ELEMENT_ARRAY_BUFFER,this._triangleVerticesIndexBuffer);this._uint16Array.set(e);jV.bufferData(jV.ELEMENT_ARRAY_BUFFER,this._uint16Array,jV.STREAM_DRAW)}if(this._triangleVerticesIndexBuffer.vertexCount!==e.length){this._triangleVerticesIndexBuffer.vertexCount=e.length;jV.bindBuffer(jV.ELEMENT_ARRAY_BUFFER,this._triangleVerticesIndexBuffer);this._uint16Array.set(e);jV.bufferData(jV.ELEMENT_ARRAY_BUFFER,this._uint16Array,jV.STREAM_DRAW)}if(!this._vertexTexCoordBuffer){this._vertexTexCoordBuffer=jV.createBuffer()}jV.bindBuffer(jV.ARRAY_BUFFER,this._vertexTexCoordBuffer);this._float32Array.set(i);jV.bufferData(jV.ARRAY_BUFFER,this._float32Array,jV.STREAM_DRAW)},_getVertex:function(T,jV){var e=a1.H_SEGS/this._cols;var jW=a1.H_SEGS/e;var i=T+jV*jW;return this._sphere.facesVertex[i]},_getTextureCoord:function(e,i){return this._sphere.sphere.generateTextureCoord(1,e,i)},_draw:function(){var e=this._gl;var i=this._glProgram;e.bindBuffer(e.ARRAY_BUFFER,this._trianglesVerticeBuffer);e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this._triangleVerticesIndexBuffer);e.vertexAttribPointer(i.vertexPositionAttribute,3,e.FLOAT,false,0,0);e.bindBuffer(e.ARRAY_BUFFER,this._vertexTexCoordBuffer);e.vertexAttribPointer(i.vertexTexCoordAttribute,2,e.FLOAT,false,0,0);e.drawElements(e.TRIANGLES,this._triangleVerticesIndexBuffer.vertexCount,e.UNSIGNED_SHORT,0)},_getColAndRow:function(){var jV;var jY;var jX;var T;var jZ;var e;var jW;var i;jV=0;jY=this._cols-1;jX=0;T=this._rows-1;jZ=0;e=0;jW=0;i=0;return[[jV,jY,jX,T],[jZ,e,jW,i]]}});function gd(i){this._earth=i;this._canvas=i._canvas;var e=this._ratio=this._earth.scene._ratio;this._width=this._canvas.width/e;this._height=this._canvas.height/e;var T=this._gl=i.scene._gl;this._webglState=dL.WebGLState.get(T,i._guid);this._glProgram=null;this._pMatrix=mat4.create();this._mvMatrix=mat4.create();this._vertexBuffer=T.createBuffer();this._markersRenderData=[];this._imgPool=new eZ("img");this._imagesAdded={};this._float32Array=new Float32Array(2000);this._useRound=true;this.zIndex=20;this._init()}gd.VS_SHADER_TEXT=["precision highp float;","attribute vec3 aVertexPosition;","attribute vec2 aVertexTextureCoord;","varying vec2 vTextureCoord;","uniform mat4 uMVMatrix;","uniform mat4 uPMatrix;","void main(void) {"," gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);"," vTextureCoord = aVertexTextureCoord;","}"].join("\\n");gd.FS_SHADER_TEXT=["precision highp float;","uniform sampler2D uSampler;","varying vec2 vTextureCoord;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord);","}"].join("\\n");eP.extend(gd.prototype,{_init:function(){this._initShaders();this._getAllUniforms();this._getAttribLocation();this._updateMatrix();this._textureAtlas=new dL.TextureAtlas(this._gl,{width:4096,height:4096});var e=this;var i=this._earth.getMap();var e=this;i.addEventListener("movestart",function(){e._useRound=false});i.addEventListener("moveend",function(){e._useRound=true});i.addEventListener("zoomstart",function(){e._useRound=false});i.addEventListener("zoomend",function(){e._useRound=true;e.onStatusChange();e._earth.fire(new fA("onrefresh"))});this._earth.on("markers_status_change",function(){e.onStatusChange();e._earth.fire(new fA("onrefresh"))})},_updateMatrix:function(){mat4.identity(this._mvMatrix);mat4.translate(this._mvMatrix,this._mvMatrix,[-this._width/2,this._height/2,0]);mat4.ortho(this._pMatrix,-this._width/2,this._width/2,-this._height/2,this._height/2,100,-100)},_initShaders:function(){var e=gd.VS_SHADER_TEXT;var T=gd.FS_SHADER_TEXT;var jW=this._gl;var jX=this._glProgram=jW.createProgram();var jV=this._makeShader(e,jW.VERTEX_SHADER);var i=this._makeShader(T,jW.FRAGMENT_SHADER);jW.attachShader(jX,jV);jW.attachShader(jX,i);jW.linkProgram(jX);jW.useProgram(jX)},_makeShader:function(jV,e){var T=this._gl;var i=T.createShader(e);T.shaderSource(i,jV);T.compileShader(i);return i},_getAllUniforms:function(){var i=this._glProgram;var e=this._gl;i.pMatrixUniform=e.getUniformLocation(i,"uPMatrix");i.mvMatrixUniform=e.getUniformLocation(i,"uMVMatrix");i.sampler=e.getUniformLocation(i,"uSampler")},_setUniforms:function(){var i=this._glProgram;var e=this._gl;e.uniformMatrix4fv(i.pMatrixUniform,false,this._pMatrix);e.uniformMatrix4fv(i.mvMatrixUniform,false,this._mvMatrix)},_getAttribLocation:function(){var i=this._glProgram;var e=this._gl;i.vertexPositionAttribute=e.getAttribLocation(i,"aVertexPosition");i.vertexTexCoordAttribute=e.getAttribLocation(i,"aVertexTextureCoord")},resize:function(){this._width=this._canvas.width/this._ratio;this._height=this._canvas.height/this._ratio;this._updateMatrix()},_addTexture:function(e){return this._textureAtlas.addTexture(e)},onStatusChange:function(j0){this._updateScreenPixel();this._calcCollision();var jX=this._earth.getZoom();if(jX>=this._earth.zoomForNight+1){this._markersRenderData=this._earth._overlayMgr.getMarkersRenderData();var jZ=this;for(var jV=0;jV1&&jY.srcSetObject["2x"]){j1=jY.srcSetObject["2x"];jY.ratio=2}if(jZ._imagesAdded[j1]){if(jZ._imagesAdded[j1].status==="loaded"){if(jY.imageSize){jY.ratio=jZ._imagesAdded[j1].imgSize.width/jY.imageSize.width}T.textureCoord=jZ._calcTextureCoords(jZ._imagesAdded[j1].imgSize,jY.size,jY.imageOffset,jZ._imagesAdded[j1].textureOffset,jY.ratio);jZ._earth.fire(new fA("onrefresh"))}else{jZ._imagesAdded[j1].markers.push(T)}continue}jZ._imagesAdded[j1]={status:"loading",markers:[T]};jZ._loadIconImageByUrl(j1)}else{if(jW){if(jZ._imagesAdded[jW.id]){if(jY.imageSize){jY.ratio=jZ._imagesAdded[jW.id].imgSize.width/jY.imageSize.width}T.textureCoord=jZ._calcTextureCoords(jZ._imagesAdded[jW.id].imgSize,jY.size,jY.imageOffset,jZ._imagesAdded[jW.id].textureOffset,jY.ratio);jZ._earth.fire(new fA("onrefresh"));continue}jZ._imagesAdded[jW.id]={status:"loading",markers:[T]};jZ._processImageAfterLoad(jW.id,jW)}}}}else{this._markersRenderData=[]}},_loadIconImageByUrl:function(jW){var T=this;var e=T._imgPool.get();e.crossOrigin="anonymous";e.onload=function i(){T._processImageAfterLoad(jW,this);T._imgPool.free(this)};e.onerror=function jV(){T._imgPool.free(this);T._imagesAdded[jW]=null};e.src=jW},_processImageAfterLoad:function(T,jX){this._imagesAdded[T].status="loaded";var i=this._addTexture(jX);var jW=new iL(jX.width,jX.height);this._imagesAdded[T].imgSize=jW;this._imagesAdded[T].textureOffset=i;for(var e=0;e15){var j6=j9.scene.fromLatLngToXYZ(j3.latLng);j6=ao(j6,j9.rotationInfo);jV=j9.scene.fromXYZToPixel(j6[0],j6[1],j6[2],{isCalcOnBack:true,useRound:this._useRound,matrixInfo:{modelViewMatrix:j5._mvMatrixForCamera}})}else{jV=j9.fromLatLngToPixel(j3.latLng,{isCalcOnBack:true,useRound:this._useRound})}if(jV.onBack){jW.screenVertex=[];jW.screenBounds=null;continue}if(j3._config.enableCollisionDetection){var j8=j3.getIcon();var jY=jV.x-j8.anchor.width;var jX=jV.y-j8.anchor.height;var T=jY+j8.size.width;var e=jX+j8.size.height;jW.screenBounds={minX:jY,minY:jX,maxX:T,maxY:e}}var j4=jW.iconRenderData.vertex;var j7=[];var j0=j3._config.offset;for(var jZ=0;jZT.minX+jW&&j5.minY+jWT.minY+jW){e._intersectIndex.push(jX)}}}for(var jZ=0,jV=j2.length;jZ800||jV>=hx.HIGH_RES_MIN_RATIO){return B.imgPath+"tiles/night_1-2k.jpg?20150826"}return B.imgPath+"tiles/night_1.jpg?20150826"}else{if(jW==="world"){var jZ=this._earth.getContainerSize().height;if(jZ>800||jV>=hx.HIGH_RES_MIN_RATIO){return B.imgPath+"tiles/world_1-2k.jpg?20150826"}return B.imgPath+"tiles/world_1.jpg?20150826"}else{if(jW==="er"){if(T<2){T=2}if(jY.indexOf("north")>-1){return B.imgPath+"tiles/north_polar_"+T+".jpg?20150826"}else{return B.imgPath+"tiles/south_polar_"+T+".jpg?20150826"}}else{i=Math.round(Math.abs(e+j0)%4);jX=this.domains[i]+"u=x={x};y={y};z={z};v=009;type=sate&fm=46&app=webearth2&v="+this._version+"&udt="+this._udt;var tdir = offmapcfg.tiles_satellite_dir.length > 0 ? offmapcfg.tiles_satellite_dir : offmapcfg.home + "tiles_satellite";jX=tdir + "/{z}/{x}/{y}" + offmapcfg.imgext;}}}return jX.replace("{index}",i).replace("{z}",T).replace("{x}",e).replace("{y}",j0)}});function jw(T,e){this._earth=T;this._opts=e||{};this.type="streetlayer";var i=jy("ditu","satelliteStreet");this._udt=i.udt;this._version=i.ver}eP.extend(jw.prototype,{getTilesUrl:function(jV,jY,jX,T){var e=ec.B_STREET_MAP.tileUrls;var i=Math.round(Math.abs(jV+jY)%e.length);var jW=e[i]+"?qt=vtile&x={x}&y={y}&z={z}&styles=sl&showtext=0&v="+this._version+"&udt="+this._udt;var tdir = offmapcfg.tiles_road_dir.length > 0 ? offmapcfg.tiles_road_dir : offmapcfg.home + "tiles_road";jW=tdir + "/{z}/{x}/{y}" + offmapcfg.imgext;return jW.replace("{z}",jX).replace("{x}",jV).replace("{y}",jY)}});var jT=3;var h9=5;var aS=5;var iQ=4;var go=3;var M=2;var ej=1;var hh=0;var e9={3:{start:3,base:3},4:{start:4,base:5},5:{start:4,base:5},6:{start:6,base:7},7:{start:6,base:7},8:{start:8,base:9},9:{start:8,base:9},10:{start:10,base:10},11:{start:11,base:12},12:{start:11,base:12},13:{start:11,base:12},14:{start:14,base:15},15:{start:14,base:15},16:{start:16,base:17},17:{start:16,base:17},18:{start:18,base:19},19:{start:18,base:19},20:{start:18,base:19},21:{start:18,base:19}};function gh(jW,jV){this._earth=jW;var e=jW.scene._ratio;this._width=jW._canvas.width/e;this._height=jW._canvas.height/e;this._opts=jV||{};var T=bx();this._udt=T.udt;this._version=T.ver;var i=jy("ditu","normal");this._udt2=i.udt;this._version2=i.ver;this._tileType=hM.getInstance("na");this._iconRefreshTimer=null;this._rawDataCache=new hT(200);this._binaryCache={};this._iconCache={};this._init();this.renderer=new em(jW,this)}eP.extend(gh.prototype,{_init:function(){this._imgPool=new eZ("img");this._projection=this._earth.getProjection();this._radius=this._earth.radius;this._featureStyle=bw["FeatureStyle"+this._earth._map.config.style];this._textTextureImgWidth=4096;this._textTextureImgHeight=4096;if(this._earth.scene._ratio>1){this._textTextureImgWidth+=1024}this._textTextureImgWidth=Math.min(this._textTextureImgWidth,c0.params.maxTextureSize);this._tempI=mat2.create();this._tempRotateMatrix=mat2.create();this._tempOut=mat2.create();this._v2_0=vec2.create();this._v2_1=vec2.create();this._v2_2=vec2.create();this._v2_3=vec2.create();this._wordSpaceRatio=2;this._fixedLabelMagRatio=0.5;this._lineLabelMagRatio=700*0.56/this._earth.getContainerSize().height;this._headingHash={_0:true,_90:true,_180:true,_270:true,_360:true}},loadTileData:function(T,j0,jW,i,jZ){var jX=this;var jY=jZ.replace("key","cbk").replace(/-/g,"M");bw[jY]=function(j4){var j5=j4[5];if(j5){var j2=jX._imgPool.get();if(eP.Browser.safari){j2.src=""}var j1=j4[6];j2.onload=function(){j1=j1||this.height;var j7=jX.renderer.addTextTexture(this,j1);if(j7===null){jX._imgPool.free(this);return}var j6=jX._processData(this,j4,T,j0,jW,i,j7,j1);jX.renderer.setTextureInfoRes(jZ,j6);jX._imgPool.free(this)};j2.src=j5}else{var j3=jX._processData(null,j4,T,j0,jW,i);jX.renderer.setTextureInfoRes(jZ,j3)}jX._rawDataCache.setData(jZ,j4);delete bw[jY]};var jV=this._rawDataCache.getData(jZ);if(jV){bw[jY](jV)}else{var e=jX._getTilesUrl(T,j0,jW,jY);gC.load(e)}},_processData:function(jY,jV,i,j1,jX,e,T,jZ){var j0={};var jW;if(jY){jW=this._calcIconAndTextInfo(jV,i,j1,jX,e,jY.width,jZ,T)}else{jW=this._calcIconAndTextInfo(jV,i,j1,jX,e,null,null)}j0.icTxtInfo=jW;j0.imageContentHeight=jZ;return j0},_calcIconAndTextInfo:function(j2,jW,j5,j3,jV,jX,j4,jY){var T=[];if(j2[0]){for(var j1=0;j10&&!j3){continue}var kn=Math.round(j6[0]/100);var km=Math.round(j6[1]/100);var kz={lng:ki+kn,lat:kh+km};var kb=kj.convertMC2LL(kz);var kc=j6[7]||"";var jY={type:"fixed",latLng:kb,pt:kz,name:kc,rank:j6[4],iconPos:null,textPos:null,tilePosStr:j6[0]+","+j6[1],guid:j6[3]||""};var j0=j6[5];if((j0!==iQ&&j3||!j3)&&j2!==null){jY.iconPos=this._getIconVertexData(j2,j8);if(jY.iconPos){j4=jY.iconPos.width;ka=jY.iconPos.height;var kd=this._iconCache[j2];if(!kd){kd=this._iconCache[j2]={loaded:false,img:null};var j7=this;var jX=new Image();jX.id=j2;jX.crossOrigin="anonymous";jX.onload=function(){j7._iconCache[this.id].img=this;j7._iconCache[this.id].loaded=true;j7._addToIconTexture(this);if(j7._iconRefreshTimer===null){j7._iconRefreshTimer=setTimeout(function(){j7._earth.fire(new fA("onrefresh"));j7._iconRefreshTimer=null},kx)}this.onload=null};jX.onerror=function(){j7._iconCache[this.id]=null;this.onerror=null};jX.src=B.getIconSetPath(this._earth._map)+j2+".png"}}}if(j3){jY.textPos=this._getTextVertexData(j6,j4,ka,kp,kf,ky)}if(jY.textPos||jY.iconPos){this._addBounds(jY);kw.push(jY)}}}},_getLineLabelInfo:function(j9,j0,ka,jW,ky,kH,ku,kR,kt){if(j9.length!==10){return}var j1=ky;var jY=this._wordSpaceRatio;var kf=Math.pow(2,18-jW);var jX=this._tileType.getBaseTileSize(jW);var kx=j0*jX*kf;var kw=ka*jX*kf;var kN=this._projection;var kG=j9[7].length;var kk=j9[1];var kI=j9[3];var j5=j9[4];var e=2;var j2=j5.slice(0,e);for(var kK=e;kKkh){kh=kb}if(Tkg){kg=jV}}kt.push({type:"line",rank:kk,pt:jZ,bounds:[kC,kB,kh,kg],wordsInfo:kp,labelAngle:km,latLng:kj})}},_calcAngleByXYDiff:function(jV,T){var i;if(jV===0){if(T>0){i=90}else{i=270}return i}var e=T/jV;var i=e1(Math.atan(e));if(jV<0&&T>0){i+=180}else{if(jV<0&&T<0){i+=180}else{if(jV>0&&T<0){i+=360}}}if(i===360){i=0}return i},_isVisible:function(e,i){var jV;if(!this._binaryCache[e]){jV=e.toString(2);if(jV.length<8){jV=new Array(8-jV.length+1).join("0")+jV}this._binaryCache[e]=jV}jV=this._binaryCache[e];var T=e9[i].start;return jV[i-T]==="1"},_getTextVertexData:function(kb,j0,j7,j9,j3,T){var ki=kb[5];if(typeof ki!=="number"){ki=0}var j6=kb[12];var j1=j6.length;var j8=[];var ka=[];var kd=0;var kj=0;for(var kc=0;kc=48&&j1.charCodeAt(0)<=57){j5=bw["iconSetInfo"+jW]["_"+j1]}}if(j5){var jX=j5[0]*jY;var j2=j5[1]*jY;var jV=Math.round(-jX/2);var j4=Math.round(-j2/2);var T=jV+jX;var j3=j4;var i=T;var j0=j3+j2;var e=jV;var jZ=j0;return{destVertex:[jV,j4,T,j3,i,j0,jV,j4,i,j0,e,jZ],srcCoord:null,width:jX,height:j2,iconType:j1}}return null},_addToIconTexture:function(jY){var jX=this.renderer;var e=jX._iconTextureAtlas.addTexture(jY);jX._iconTextureAtlasOffset[jY.id]=e;var j2=0*jY.width/1024+e.width;var jW=0*jY.height/1024+e.height;var j1=jY.width/1024+e.width;var jV=jW;var j0=j1;var T=jY.height/1024+e.height;var jZ=j2;var i=T;jX._iconTextureAtlasCoords[jY.id]=[j2,jW,j1,jV,j0,T,j2,jW,j0,T,jZ,i]},_addLineTextPos:function(j5,j3,kC,km,kq,kd,kE,kb,jV,kJ){var j4=j3[8];var kh=j3[7];var ke=j3[3];var ky=0;var jY=this._wordSpaceRatio;for(var kG=0,kD=j4.length;kGka){ka=j6}if(Tj9){j9=jW}ky++}if(kk>0){var kA={type:"line",wordsInfo:kg,labelAngle:kf,latLng:kc,bounds:[kw,kv,ka,j9],rank:ke};j5.push(kA)}}},_addBounds:function(j1){var jX=1000;var jV=1000;var T=-1000;var e=-1000;if(j1.iconPos){var jZ=j1.iconPos.destVertex;for(var j0=0,jW=jZ.length;j0T){T=j3}if(j2e){e=j2}}}if(j1.textPos){var jY=j1.textPos.destVertex;for(var j0=0,jW=jY.length;j0T){T=j3}if(j2e){e=j2}}}j1.bounds=[jX,jV,T,e];j1.bds=[jX/2,jV/2,T/2,e/2]},_calcTexCoords:function(T,j1,i,j7,jV,j5,jW,e){var j6=T/this._textTextureImgWidth+jW.width;var j0=(j5-j1-j7)/this._textTextureImgHeight+jW.height;var j4=(T+i)/this._textTextureImgWidth+jW.width;var jZ=j0;var j3=j4;var jY=(j5-j1)/this._textTextureImgHeight+jW.height;var j2=j6;var jX=jY;e.push(j6,j0,j4,jZ,j3,jY,j6,j0,j3,jY,j2,jX)},updateTexCoords:function(jZ,jX){for(var jW=0,e=jZ.length;jW15){var kp=jV.scene.fromLatLngToXYZ(kc);kp=ao(kp,jV.rotationInfo);j9=jV.scene.fromXYZToPixel(kp[0],kp[1],kp[2],{matrixInfo:{modelViewMatrix:jV.scene._camera._mvMatrixForCamera}})}else{j9=jV.fromLatLngToPixel(kc)}kd.scrPt=j9;var kk=j9.x;var kj=kg-j9.y;var j0=kd.bounds;kd._tempBounds=[kk+j0[0]*j5,kj+j0[1]*j5,kk+j0[2]*j5,kj+j0[3]*j5]}else{var kc=kd.latLng;var j9=jV.fromLatLngToPixel(kc);var kk=j9.x;var kj=kg-j9.y;var j0=kd.bounds;var j3=j0[0]*jW;var j2=j0[1]*jW;var j1=j0[2]*jW;var jZ=j0[3]*jW;var ko=j3;var kn=j2;var km=j1;var kl=jZ;if(jX===0||jX===360){ko=j3;kn=j2;km=j1;kl=jZ}else{if(jX===90||jX===-270){ko=j2;kn=-j1;km=jZ;kl=-j3}else{if(jX===180||jX===-180){ko=-j1;kn=-jZ;km=-j3;kl=-j2}else{if(jX===270||jX===-90){ko=-jZ;kn=j3;km=-j2;kl=j1}}}}kd._tempBounds=[kk+ko,kj+kn,kk+km,kj+kl]}}var kb=5;if(jV.getImageZoom()===5){kb=-2}if(jV.getImageZoom()===8){kb=10}for(var ki=0,ke=j8.length;kijY[2]+kb||kh[3]+kbjY[3]+kb)){ka.arrIntersectIndex.push(kf)}}}for(var ki=0,ke=j8.length;ki15){var j3=e.scene.fromLatLngToXYZ(ka);j3=ao(j3,e.rotationInfo);kf=e.scene.fromXYZToPixel(j3[0],j3[1],j3[2],{matrixInfo:{modelViewMatrix:e.scene._camera._mvMatrixForCamera}})}else{kf=e.fromLatLngToPixel(ka,{isCalcOnBack:kq})}var kd=kf.x;var kc=jV-kf.y;var kg=jY.bounds;jY.scrPt=kf;jY._tempBounds=[kd+kg[0]*kx,kc+kg[1]*kx,kd+kg[2]*kx,kc+kg[3]*kx];j2.push(jY)}var j0=jW.icTxtInfo.lineLabel;for(var kt=0,ke=j0.length;ktkw[2]+jX||j5[3]+jXkw[3]+jX)){kj.arrIntersectIndex.push(kt)}}}for(var ku=0,ks=j2.length;ku=kc||j9<=0||j9>=j7)||j0.onBack){continue}if(j2.iconPos&&!j2.iconPos.srcCoord){if(this.renderer._iconTextureAtlasCoords[j2.iconPos.iconType]){j2.iconPos.srcCoord=this.renderer._iconTextureAtlasCoords[j2.iconPos.iconType]}}if(j2.iconPos&&j2.iconPos.srcCoord){var j3=j2.iconPos.destVertex;var j1=j2.iconPos.srcCoord;for(var j6=0,jY=j3.length;j6=45&&ko<=135)||(ko>=225&&ko<=315)))||((kH===-90||kH===270)&&((ko>=135&&ko<=225)||((ko>=315&&ko<=360)||(ko>=0&&ko<=45))))||(Math.abs(kH)===180)){var kn=kr[ku-1-kM];kG=kn[0][0];kE=kn[0][1];kk=kn[2]}var kx=kK[3];var kW=kx[0];var kw=kx[1];var kV=kx[2];var kv=kx[3];var kU=kx[4];var kt=kx[5];var kT=kx[6];var ks=kx[7];var j0=kJ+(kG-e/2)*ki*kl;var kD=kI+(kE+jY/2)*ki*kl;var jX=j0;var kC=kI+(kE-jY/2)*ki*kl;var jW=kJ+(kG+e/2)*ki*kl;var kA=kD;var T=jW;var ky=kC;var j1=(j0+jW)/2;var jZ=(kD+kC)/2;var kz=this._tempRotateMatrix;var kF=this._tempOut;var ka=this._v2_0;var j7=this._v2_1;var j5=this._v2_2;var j3=this._v2_3;vec2.set(ka,j0-j1,kD-jZ);vec2.set(j7,jX-j1,kC-jZ);vec2.set(j5,jW-j1,kA-jZ);vec2.set(j3,T-j1,ky-jZ);mat2.rotate(kz,kf,(kk+kH)*Math.PI/180);mat2.multiply(kF,kz,ka);j0=kF[0]+j1;kD=kF[1]+jZ;mat2.multiply(kF,kz,j7);jX=kF[0]+j1;kC=kF[1]+jZ;mat2.multiply(kF,kz,j5);jW=kF[0]+j1;kA=kF[1]+jZ;mat2.multiply(kF,kz,j3);T=kF[0]+j1;ky=kF[1]+jZ;var kc=kB.convertMC2LL(new cu(j0,kD));var j9=kB.convertMC2LL(new cu(jX,kC));var j6=kB.convertMC2LL(new cu(jW,kA));var j4=kB.convertMC2LL(new cu(T,ky));var kS=km.fromLatLngToXYZ(kc,this._radius);var kR=km.fromLatLngToXYZ(j9,this._radius);var kQ=km.fromLatLngToXYZ(j6,this._radius);var kO=km.fromLatLngToXYZ(j4,this._radius);if(this._earth.getZoom()>15){kS=ao(kS,jV.rotationInfo);kR=ao(kR,jV.rotationInfo);kQ=ao(kQ,jV.rotationInfo);kO=ao(kO,jV.rotationInfo)}kh.push(kS[0],kS[1],kS[2],kW,kw,kR[0],kR[1],kR[2],kV,kv,kQ[0],kQ[1],kQ[2],kU,kt,kR[0],kR[1],kR[2],kV,kv,kO[0],kO[1],kO[2],kT,ks,kQ[0],kQ[1],kQ[2],kU,kt)}}if(this._headingHash[kP]){var j8=kj.preCacheKey;if(j8){kj[j8]=null;delete kj[j8]}kj[kd]=kh;kj.preCacheKey=kd}return kh},_getTilesUrl:function(T,j0,jZ,jY){var jW=ec.B_NORMAL_MAP.vectorTileUrls;var jX=Math.round(Math.abs(T+j0)%jW.length);var i="x={x}&y={y}&z={z}&udt={udt}&v={v}&styles=sl&textimg=1&textonly=1&scaler=2&fn="+fk+".{fn}";var jV=i.replace("{x}",T).replace("{y}",j0).replace("{z}",jZ).replace("{udt}",this._udt2).replace("{v}",this._version2).replace("{fn}",jY);var e=jW[jX]+"?qt=vtile¶m="+window.encodeURIComponent(eL(jV));var tiles_dir = offmapcfg.tiles_v_road_dir.length > 0 ? offmapcfg.tiles_v_road_dir : offmapcfg.home + "tiles_v_road";e=tiles_dir + "/"+jZ+"/"+T+"/"+j0 + offmapcfg.imgext;return e}});function fQ(e){this._earth=e;this._overlays=[[],[],[]];this._markersRenderData=[];this._tiles=new hT(200);this._customOverlays=[];this._init();e._overlayMgr=this}eP.extend(fQ.prototype,{_init:function(){this._bind();this._drawCanvas=bV("canvas");this._drawCanvasLOD=bV("canvas")},_bind:function(){var jV=this;var jX=this._earth._map;function e(jZ){if(jX.mapType!==BMAP_EARTH_MAP){return}jV._update()}function jW(jZ){if(jX.mapType!==BMAP_EARTH_MAP){return}jV._updateMarker(jZ.overlay,jZ.action)}jX.on("addoverlay",function jY(j2){if(jX.mapType!==BMAP_EARTH_MAP){return}if(!(j2.overlay instanceof ik)&&!(j2.overlay instanceof jz)){return}var j0=j2.overlay;var jZ=0;if(j2.overlay instanceof fK){jZ=1}else{if(j2.overlay instanceof jz){jZ=2}}for(var j1=0;j1jY.lng){jY.lng=180}var kp=iU.convertLL2MC(j8);var T=iU.convertLL2MC(jY);e=e||this._earth.getImageZoom();var j7=Math.pow(2,e-18);var kn=this._earth._map;var jV=kn.config.defaultMaxBounds;var kl=Math.max(kp.lng,jV.sw.lng);var kk=Math.max(kp.lat,jV.sw.lat);var kj=Math.min(T.lng,jV.ne.lng);var ki=Math.min(T.lat,jV.ne.lat);var j1=new hL(new cu(kl,kk),new cu(kj,ki));var j3=ke.intersects(j1);if(j3===null){if(!j1.containsBounds(ke)){if(this._earth.getZoom()>=4){return}}}j3=j3||ke;if(this._earth.getZoom()<4){j3=ke}if(j3.isEmpty()){return}var jW=j3.getMin();var jZ=j3.getMax();var j0=new fa(jW.lng*j7,jW.lat*j7);var j2=new fa(jZ.lng*j7,jZ.lat*j7);var kb=Math.floor(j0.x/256);var j9=Math.ceil(j2.x/256);var kf=Math.floor(j0.y/256);var kd=Math.ceil(j2.y/256);var kh=(j9-kb+1)*256;var j6=(kd-kf+1)*256;j5.width=kh;j5.height=j6;j5.fromCol=kb;j5.fromRow=kf;j5.toCol=j9;j5.toRow=kd;j5.cols=j9-kb+1;j5.rows=kd-kf+1;for(kg=0,kc=km.length;kg=4){return}}}if(kh.isVisible()===false){return}var j3=(kb-kf+1)*256;var j9=jW.getContext("2d");j9.save();j9.lineCap=kh.getStrokeLineCap();j9.lineJoin=kh.getStrokeLineJoin();j9.globalAlpha=kh.getStrokeOpacity()+0.1;j9.lineWidth=kh.getStrokeWeight()+1;j9.strokeStyle=kh.getStrokeColor();j9.beginPath();var e=kh.getParsedPoints();for(var kc=0;kci.y){j2=-j2;this._needToRevertX=true}else{if(j5===90&&this._initX>i.x||j5===270&&this._initXi.y||j5===180&&this._initY>i.y){this._needToRevertX=true;j2=-j2}else{if(j5===90&&this._initX100||(j8>10&&j9<10&&kf<10)||(j9<3&&kf<3)){this._earth.fire(new fA("onanimation_end"));this._earth.fire(new fA("onmoveend"));return}var jV=0.5*j2;var ke=0;var kc=0;if(ka.y===0){ke=jV}else{var j1=Math.abs(ka.x/ka.y);kc=Math.round(Math.sqrt(jV*jV/(1+j1*j1)));ke=Math.round(j1*kc)}if(ka.x<0){ke=-ke}if(ka.y<0){kc=-kc}var j7;var j5;var kj;var i;var ki=e.getZoom();var kd=e.getHeading();var T=new co(0,0);if(ki<4){j7=kl.x+ke;j5=kl.y+kc}else{var kh=this._getLatLngDiffByXYDiff(j4,j3);var kb=im(kd);var jY=ke*Math.cos(kb)+kc*Math.sin(kb);var jW=kc*Math.cos(kb)-ke*Math.sin(kb);var T=this._getLatLngSpan(jY,jW);kj=kh.lng-T.lng;i=kh.lat-T.lat}var kk=this;var j0;var jX;var j6;var kg;this.dragAni=new fq({duration:10000,fps:60,render:function(kn,km){if(km===1){return}this._motionElaspsed=Date.now()-jZ;var ko=Math.exp(-this._motionElaspsed/250);if(ko<0.01){if(kk.dragAni){kk.dragAni.stop();kk.dragAni=null}return}if(ki<4){j0=(j7-ke*ko);jX=(j5-kc*ko);if(kk._needToRevertX){j0=-j0}else{if(kk._needToRevertY){jX=-jX}}kk._setEarthCenterByXYDiff(j0,jX)}else{j6=(kj+T.lng*ko);kg=(i+T.lat*ko);kk._setEarthCenterByLatLngDiff(kg,j6)}},finish:function(){kk._earth.fire(new fA("onanimation_end"));kk.dragAni=null;kk._earth.fire(new fA("onmoveend"));kk._initLatLng=null},onStop:function(km){kk._earth.fire(new fA("onanimation_end"));kk.dragAni=null;kk._initLatLng=null;kk._earth.fire(new fA("onmoveend"))}})},_onDragStartRight:function(e,i){this._initXRight=e;this._initYRight=i;if(this._earth.getZoom()<5){return}this._earth.fire(new fA("ondragstart"));this._initTilt=this._earth.getTilt()},_onDraggingRight:function(i,jV){if(this._earth.getZoom()<5){return}this._rightDragged=true;var T=jV-this._initYRight;var e=T/2;this._earth.fire(new fA("ondragging"));this._earth.setTilt(this._initTilt+e,{noAnimation:true})},_onDragEndRight:function(e,jX){var jW=!this._rightDragged;var jV=this._earth._map;if(this._rightDblclickTimer){clearTimeout(this._rightDblclickTimer);this._rightDblclickTimer=null;if(jW){jV.dispatchEvent(new fA("onrightclick"));jV.dispatchEvent(new fA("onrightdblclick"));this._earth.fire(new fA("onearthrightdblclickzoom"));this._earth.zoomWithMousePosFix(this._earth.getZoom()-1,new fa(e,jX))}}else{if(jW){jV.dispatchEvent(new fA("onrightclick"))}else{this._earth.fire(new fA("ondragend"))}var i=new fA("onrightclickex");var T=this;this._rightDblclickTimer=setTimeout(function(){T._rightDblclickTimer=null;if(jW){jV.dispatchEvent(i)}},jV.config.clickInterval)}if(this._rightDragged){this._earth.fire(new fA("onearthrightdragend"))}this._rightDragged=false},moveByArrowKey:function(j0,T){var jY=this._earth;if(jY.getLock()){return}if(jY._ani){jY._ani.stop()}var e=jY._map;if(T==="keydown"){this._earth.fire(new fA("onmovestart"));e.temp.arrow|=d6.arrowOpCodes[j0]}else{if(T==="keyup"){e.temp.arrow&=~d6.arrowOpCodes[j0]}}var jZ=e.temp.arrow;var jX=e._arrow._lastArrow;var jV=jX===jZ?false:true;e._arrow._lastArrow=jZ;var j1=jY.getZoom();var jW=this;if(jZ===0||(jZ&1&&jZ&4)||(jZ&2&&jZ&8)){this._arrowAni&&this._arrowAni.stop();this._arrowMomentumAni&&this._arrowMomentumAni.stop();this._arrowAni=null;if(jZ===0){this._initCenter=jY.getCenter().clone();this._initPanLng=8/Math.pow(2,j1);this._initPanLat=8/Math.pow(2,j1);var i=8/Math.pow(2,j1);this._arrowMomentumAni=new fq({duration:500,transition:gq.easeInCubic,render:function(j3){var j6=jW._initCenter;var j2=j6.lat;var j5=j6.lng;var j4=jX;if(j4&d6.arrowOpCodes[d6.KEY_LEFT]){jW._initPanLng+=i*(1-j3);j5=j6.lng-jW._initPanLng}if(j4&d6.arrowOpCodes[d6.KEY_RIGHT]){jW._initPanLng+=i*(1-j3);j5=j6.lng+jW._initPanLng}if(j4&d6.arrowOpCodes[d6.KEY_UP]){jW._initPanLat+=i*(1-j3);j2=j6.lat+jW._initPanLat}if(j4&d6.arrowOpCodes[d6.KEY_DOWN]){jW._initPanLat+=i*(1-j3);j2=j6.lat-jW._initPanLat}jY.setCenter(new co(j2,j5),{noAnimation:true,noFireEvent:true,from:"keyboard"})},finish:function(){jW._earth.fire(new fA("onmoveend"));jW._arrowMomentumAni=null},stop:function(){jW._earth.fire(new fA("onmoveend"));jW._arrowMomentumAni=null}})}return}if(jV){this._initCenter=jY.getCenter().clone();this._initPanLng=8/Math.pow(2,j1);this._initPanLat=8/Math.pow(2,j1)}if(this._arrowAni){return}this._arrowMomentumAni&&this._arrowMomentumAni.stop();var i=8/Math.pow(2,j1);this._arrowAni=new fq({duration:999999,transition:gq.linear,render:function(j4,j3){var j7=jW._initCenter;var j2=j7.lat;var j6=j7.lng;var j5=e.temp.arrow;if(j5&d6.arrowOpCodes[d6.KEY_LEFT]){jW._initPanLng+=i;j6=j7.lng-jW._initPanLng}if(j5&d6.arrowOpCodes[d6.KEY_RIGHT]){jW._initPanLng+=i;j6=j7.lng+jW._initPanLng}if(j5&d6.arrowOpCodes[d6.KEY_UP]){jW._initPanLat+=i;j2=j7.lat+jW._initPanLat}if(j5&d6.arrowOpCodes[d6.KEY_DOWN]){jW._initPanLat+=i;j2=j7.lat-jW._initPanLat}jY.setCenter(new co(j2,j6),{noAnimation:true,noFireEvent:true,from:"keyboard"})}})}});function cr(i,e){this._earth=e;this.scrollCount=0;this.maxZoomWheelDir=1;this.minZoomWheelDir=-1;var T=ec[i.getMapType()];this.maxZoom=T.maxZoom;this.minZoom=T.minZoom;this._lastWheelTime=0;this._opMethod="";this.lastWheelDelta=0;this.lastDiff=0;this.zoomEventStatus="idle";this._canDispatchEvent=true;this._mousePos=null;this._isMac=!!eP.Platform.macintosh}cr.prototype.onWheel=function(jY){if(this._earth.getLock()){return}var T=Math.floor(jY.timeStamp);var i=T-this._lastWheelTime;var jX=jY.wheelDelta>=0||jY.deltaY<0||jY.detail<0;var j5=Math.abs(jY.deltaY);var j1=Math.abs(jY.wheelDelta);var j2=j5;if(j1===0&&j2===0){return}if(i>100){this._opMethod=hB(j1,j2,jY.deltaMode);this._mousePos=jY.offsetPosMap.clone();this.scrollCount=0;this.startZoom=this._earth.getZoom()}var jV=false;if(this._mousePos===null&&jY.offsetPosMap!==null){this._mousePos=jY.offsetPosMap.clone()}var j4=this._mousePos;this._lastWheelTime=T;if(this._opMethod==="mouseWheel"){var j0=j1?(j1/3):j2;this._onWheelMouse(j0,jX,j4,jY.deltaMode);return}else{if(this._opMethod==="padScroll"){j5=j2/50;jV=true}else{j5=j2/20;jV=true}}if(isNaN(j5)&&jY.detail){j5=Math.abs(jY.detail)}var jZ=this;if(i<80){if(!this._wheelEventTimer){this._wheelEventTimer=setTimeout(function(){jZ._canDispatchEvent=true;jZ._wheelEventTimer=null},100)}if(jZ._canDispatchEvent){var j3=new fA("onearthwheelzoom");if(jZ._isMac){j3.opMethod=jZ._opMethod}jZ._earth.fire(j3);jZ._canDispatchEvent=false}}var j6=this._earth.getZoom();var jW=jX===true?j6+0.2*j5:j6-0.2*j5;this._earth.zoomWithMousePosFix(jW,j4,{duration:200,transition:gq.linear,stopCurrentAnimation:true,noAnimation:jV})};cr.prototype._onWheelMouse=function(jV,jX,e,jW){var jY=this._earth;this.scrollCount++;if(this.scrollCount>10){this.scrollCount=10}if(eP.Browser.firefox){if(jW===1){jV*=15}if(!eP.Platform.macintosh){this.zoomDiff=bA(jV*0.005,2)*this.scrollCount}else{if(jV%1!==0){jV*=10}this.zoomDiff=bA(jV*0.01,2)}}else{if(!eP.Platform.macintosh){this.zoomDiff=bA(jV*0.005,2)*this.scrollCount}else{this.zoomDiff=bA(jV*0.005,2)}}if(this.zoomDiff>2){this.zoomDiff=2}if(jX===false){this.zoomDiff=-this.zoomDiff}var T=jY.getZoom()+this.zoomDiff;jY.zoomWithMousePosFix(T,e,{opMethod:"mouseWheel",stopCurrentAnimation:true});this._preTrend=this._trend;var i=new fA("onearthwheelzoom");if(this._isMac){i.opMethod="mousescroll"}this._earth.fire(i)};');