!function(t,e){e(t.mapv=t.mapv||{})}(window,function(t){"use strict";function p(t){t&&t.clearRect&&t.clearRect(0,0,t.canvas.width,t.canvas.height)}function i(){this._subscribers={}}i.prototype.on=function(t,e){var n=this._subscribers[t];n||(this._subscribers[t]=n=[]),n.push({callback:e})},i.prototype.off=function(t,e){var n=this._subscribers[t];if(n)for(var i=0;iv&&(a[l]=256*v),a[l]/256=n.next.y){var s=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&a=n.x&&n.x>=p&&V(oe.x)&&G(n,t)&&(e=n,l=r),n=n.next;return e}(t,e))&&j(e=J(e,t),e.next)}(h[o],n),n=j(n,n.next);return n}(t,e,r,n)),t.length>80*n){for(var h=i=t[0],l=o=t[1],d=n;da.x?o.x>s.x?o:s:a.x>s.x?a:s).x,c=(o.y>a.y?o.y>s.y?o:s:a.y>s.y?a:s).y,p=q(r,h,e,n,i),v=q(u,c,e,n,i),l=t.nextZ;for(;l&&l.z<=v;){if(l!==t.prev&&l!==t.next&&V(o.x,o.y,a.x,a.y,s.x,s.y,l.x,l.y)&&0<=S(l.prev,l,l.next))return!1;l=l.nextZ}l=t.prevZ;for(;l&&l.z>=p;){if(l!==t.prev&&l!==t.next&&V(o.x,o.y,a.x,a.y,s.x,s.y,l.x,l.y)&&0<=S(l.prev,l,l.next))return!1;l=l.prevZ}return!0}(t,i,u,o):function(t){var e=t.prev,n=t,i=t.next;if(0<=S(e,n,i))return!1;var o=t.next.next;for(;o!==t.prev;){if(V(e.x,e.y,n.x,n.y,i.x,i.y,o.x,o.y)&&0<=S(o.prev,o,o.next))return!1;o=o.next}return!0}(t))e.push(b.i/n),e.push(t.i/n),e.push(k.i/n),X(t),t=k.next,E=k.next;else if((t=k)===E){c?1===c?W(t=function(t,e,n){var i=t;do{var o=i.prev,a=i.next.next}while(!$(o,a)&&Y(o,i,i.next,a)&&G(o,a)&&G(a,o)&&(e.push(o.i/n),e.push(i.i/n),e.push(a.i/n),X(i),X(i.next),i=t=a),i=i.next,i!==t);return i}(t,e,n),e,n,i,u,o,2):2===c&&function(t,e,n,i,o,a){var s=t;do{for(var r,h=s.next.next;h!==s.prev;){if(s.i!==h.i&&function(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Y(n,n.next,t,e))return!0}while(n=n.next,n!==t);return!1}(t,e)&&G(t,e)&&G(e,t)&&function(t,e){var n=t,i=!1,o=(t.x+e.x)/2,a=(t.y+e.y)/2;for(;n.y>a!=n.next.y>a&&o<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next,n!==t;);return i}(t,e)}(s,h))return r=J(s,h),s=j(s,s.next),r=j(r,r.next),W(s,e,n,i,o,a),W(r,e,n,i,o,a);h=h.next}}while(s=s.next,s!==t)}(t,e,n,i,u,o):W(j(t),e,n,i,u,o,1);break}}}function H(t,e){return t.x-e.x}function q(t,e,n,i,o){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)/o)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-i)/o)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function V(t,e,n,i,o,a,s,r){return 0<=(o-s)*(e-r)-(t-s)*(a-r)&&0<=(t-s)*(i-r)-(n-s)*(e-r)&&0<=(n-s)*(a-r)-(o-s)*(i-r)}function S(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function $(t,e){return t.x===e.x&&t.y===e.y}function Y(t,e,n,i){return $(t,e)&&$(n,i)||$(t,i)&&$(n,e)||0=n.length-1));a++);this.splitList.other=n[n.length-1]},st.prototype.getLegend=function(t){var e,n=this.splitList,i=document.createElement("div"),o=(i.style.cssText="background:#fff; padding: 5px; border: 1px solid #ccc;","");for(e in n)o+='
'+e+"
";return i.innerHTML=o,i},rt.prototype.get=function(t){for(var e=this.splitList,n=!1,i=0;i=e[i].start)&&(void 0===e[i].end||void 0!==e[i].end&&tv&&wt(t,e,i,o);dv;)l--}e[2*i+a]===v?wt(t,e,i,l):wt(t,e,++l,o),l<=n&&(i=l+1),n<=l&&(o=l-1)}}(t,e,s=i+o>>1,i,o,a%2),_t(t,e,n,i,s-1,a+1),_t(t,e,n,1+s,o,a+1))}function wt(t,e,n,i){bt(t,n,i),bt(e,2*n,2*i),bt(e,2*n+1,2*i+1)}function bt(t,e,n){var i=t[e];t[e]=t[n],t[n]=i}function kt(t,e,n,i){t-=n,n=e-i;return t*t+n*n}function Et(t){return t[0]}function Lt(t){return t[1]}function St(t,e,n,i,o){void 0===e&&(e=Et),void 0===n&&(n=Lt),void 0===i&&(i=64),void 0===o&&(o=Float64Array),this.nodeSize=i;for(var a=(this.points=t).length<65536?Uint16Array:Uint32Array,s=this.ids=new a(t.length),r=this.coords=new o(2*t.length),h=0;h>5,n=t%32,i="No cluster with the specified id.",o=this.trees[n];if(!o)throw new Error(i);e=o.points[e];if(!e)throw new Error(i);for(var n=this.options.radius/(this.options.extent*Math.pow(2,n-1)),a=[],s=0,r=o.within(e.x,e.y,n);sa&&(e[r]._size=i),t.lineWidth=1,t.strokeStyle=e[r].strokeStyle||e[r]._strokeStyle||s.strokeStyle||"yellow",t.stroke(),(a=e[r].fillStyle||e[r]._fillStyle||s.fillStyle)&&(t.fillStyle=a,t.fill())):"LineString"===e[r].geometry.type&&(t.beginPath(),n=e[r].size||this.options.size||5,i=e[r].minSize||this.options.minSize||0,void 0===e[r]._index&&(e[r]._index=0),o=e[r]._index,t.arc(e[r].geometry._coordinates[o][0],e[r].geometry._coordinates[o][1],n,0,2*Math.PI,!0),t.closePath(),e[r]._index++,e[r]._index>=e[r].geometry._coordinates.length&&(e[r]._index=0),o=e[r].strokeStyle||s.strokeStyle,a=e[r].fillStyle||s.fillStyle||"yellow",t.fillStyle=a,t.fill(),o&&s.lineWidth&&(t.lineWidth=s.lineWidth||1,t.strokeStyle=o,t.stroke()));t.restore()}}},{key:"animate",value:function(){this.drawAnimation();var t=this.options.animateTime||100;this.timeout=setTimeout(this.animate.bind(this),t)}},{key:"start",value:function(){this.stop(),this.animate()}},{key:"stop",value:function(){clearTimeout(this.timeout)}},{key:"unbindEvent",value:function(){}},{key:"hide",value:function(){this.canvasLayer.hide(),this.stop()}},{key:"show",value:function(){this.start()}},{key:"clearData",value:function(){this.dataSet&&this.dataSet.clear(),this.update({options:null})}},{key:"destroy",value:function(){this.stop(),this.unbindEvent(),this.clearData(),this.map.removeOverlay(this.canvasLayer),this.canvasLayer=null}}]);var Bt=Ut;function Ut(t,e,n){l(this,Ut);var i=d(this,(Ut.__proto__||Object.getPrototypeOf(Ut)).call(this,t,e,n)),o=(i.map=t,i.options=n||{},i.dataSet=e,new ut({map:t,zIndex:i.options.zIndex,update:i._canvasUpdate.bind(i)})),a=(i.init(i.options),i.canvasLayer=o,i.transferToMercator(),i);return e.on("change",function(){a.transferToMercator(),o.draw()}),i.ctx=o.canvas.getContext("2d"),i.start(),i}v(Nt,It),e(Nt,[{key:"clickEvent",value:function(t){var e=t.pixel;o(Nt.prototype.__proto__||Object.getPrototypeOf(Nt.prototype),"clickEvent",this).call(this,e,t)}},{key:"mousemoveEvent",value:function(t){var e=t.pixel;o(Nt.prototype.__proto__||Object.getPrototypeOf(Nt.prototype),"mousemoveEvent",this).call(this,e,t)}},{key:"tapEvent",value:function(t){var e=t.pixel;o(Nt.prototype.__proto__||Object.getPrototypeOf(Nt.prototype),"tapEvent",this).call(this,e,t)}},{key:"bindEvent",value:function(t){this.unbindEvent();var e=this.map,n=0,i=this;this.options.methods&&(this.options.methods.click&&(e.setDefaultCursor("default"),e.addEventListener("click",this.clickEvent)),this.options.methods.mousemove&&e.addEventListener("mousemove",this.mousemoveEvent),"ontouchend"in window.document&&this.options.methods.tap&&(e.addEventListener("touchstart",function(t){n=new Date}),e.addEventListener("touchend",function(t){new Date-n<300&&i.tapEvent(t)})))}},{key:"unbindEvent",value:function(t){var e=this.map;this.options.methods&&(this.options.methods.click&&e.removeEventListener("click",this.clickEvent),this.options.methods.mousemove&&e.removeEventListener("mousemove",this.mousemoveEvent))}},{key:"transferToMercator",value:function(t){t=t||this.dataSet;var e=this.map,n=e.getMapType(),i=n.getProjection?n.getProjection():{lngLatToPoint:function(t){t=e.lnglatToMercator(t.lng,t.lat);return{x:t[0],y:t[1]}}};"bd09mc"!==this.options.coordType&&(n=t.get(),n=t.transferCoordinate(n,function(t){return t[0]<-180||180s.options.maxZoom||(i=1,"2d"!=this.context&&(i=this.canvasLayer.devicePixelRatio),t={fromColumn:"bd09mc"==s.options.coordType?"coordinates":"coordinates_mercator",transferCoordinate:function(t){return[(t[0]-h.x)/e*i,(h.y-t[1])/e*i]}},void 0!==n&&(t.filter=function(t){var e=u.trails||10;return!!(n&&t.time>n-e&&t.times.options.maxZoom||(i=1,"2d"!=this.context&&(i=this.canvasLayer.devicePixelRatio),t=this.map,e=t.getProjection(),i=Math.pow(2,t.zoom)*resolutionScale,o=e.fromLatLngToPoint(this.canvasLayer.getTopLeft()),t={transferCoordinate:function(t){t=new google.maps.LatLng(t[1],t[0]),t=e.fromLatLngToPoint(t);return[(t.x-o.x)*i,(t.y-o.y)*i]}},void 0!==n&&(t.filter=function(t){var e=r.trails||10;return!!(n&&t.time>n-e&&t.timen-e&&t.timen-e&&t.timen-e&&t.timer.options.maxZoom||(s=(t=l.getBounds()).getEast()-t.getWest(),t=t.getNorth()-t.getSouth(),a=l.getSize(),e=s/a.x,u=t/a.y,i=this.canvasLayer.getTopLeft(),o=l.latLngToContainerPoint(i),s={transferCoordinate:function(t){t="2d"===r.context?l.latLngToContainerPoint(L.latLng(t[1],t[0])):{x:(t[0]-i.lng)/e,y:(i.lat-t[1])/u};return[t.x-o.x,t.y-o.y]}},void 0!==n&&(s.filter=function(t){var e=c.trails||10;return n&&t.time>n-e&&t.timen-e&&t.timer||Math.abs(s.y)>r)&&(a=1/Math.pow((a={source:d[i[o]][e],target:d[t][e]},Math.sqrt(Math.pow(a.source.x-a.target.x,2)+Math.pow(a.source.y-a.target.y,2))),1),n.x+=s.x*a,n.y+=s.y*a)}return n}function E(t,e,n){for(var i,o,u=g/(m(p[t])*(e+1)),a=[{x:0,y:0}],s=1;s=o&&(v[n].push(i),v[i].push(n)))}function e(){for(var t=f,e=w,n=_,i=0;i