realmap
Version:
Wooritech map chart component library
8 lines (6 loc) • 4.08 kB
JavaScript
/**
* RealMap Tiledweb v1.1.6
* Copyright (C) 2023-2026 WooriTech Inc.
* All Rights Reserved.
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("realmap")):"function"==typeof define&&define.amd?define(["exports","realmap"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).RealMaptiledweb={},e.RealMap)}(this,(function(e,t){"use strict";function i(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(i){if("default"!==i){var s=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,s.get?s:{enumerable:!0,get:function(){return e[i]}})}})),t.default=e,Object.freeze(t)}var s=i(t);const r={osm:{url:"https://a.tile.openstreetmap.org",credit:"OpenStreetMap"},esri:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile",credit:"Esri"}};class l extends t.DataPoint{}class o extends t.Series{constructor(e){super(e),this._start=[NaN,NaN]}get proivder(){return this._provider}get sides(){return this._sides}get tileWidth(){return this._wTile}get tileHeight(){return this._hTile}prepareTiles(e,t,i,s,r,l,o){this.chart.body.zoom;let h=this.$_calcLevel(e,t,r);const n=Math.pow(2,h-(h|0));let a=256*n,d=256*n;h=Math.floor(h),this.$_setLevel(h);const _=this.$_coordToTile([e,Math.min(85.0511,s)]),c=this.$_tileToCoord(_);return h===this._level&&_.x===this._xTile&&_.y===this._yTile&&a===this._wTile&&d===this._hTile&&c[0]===this._start[0]&&c[1]===this._start[1]||(this._level=h,this._xTile=_.x,this._yTile=_.y,this._wTile=a,this._hTile=d,this._start=c),{level:this._level,xTile:this._xTile,yTile:this._yTile,wTile:this._wTile,hTile:this._hTile,start:this._start}}isMapSeries(){return!0}needTranslate(){return!1}getLegendSources(e,t){}_createPoint(e){return new l(e)}_doApply(e){super._doApply(e);const i=e.provider;t.isObject(i)?this._provider=i:this._provider=r[String(i)||"osm"]}_doLoadPoints(e){}$_calcLevel(e,t,i,s=256){return Math.log2(360*i/(Math.abs(t-e)*s))}$_setLevel(e){(e=Math.max(1,e))!==this._level&&(this._level=e,this._sides=2**e,this._wTile=360/this._sides,this._hTile=170.1022/this._sides,this._optionChanged())}$_coordToTile(e){const i=this._sides,s=e[1]*t.DEG_RAD;return{z:i,x:(e[0]+180)/360*i,y:(1-Math.log(Math.tan(s)+1/Math.cos(s))/t.PI)/2*i}}$_tileToCoord(e){return[e.x/e.z*360-180,Math.atan(Math.sinh(t.PI*(1-2*e.y/e.z)))*(180/t.PI)]}}o.type=t.TiledWebSeriesType,o.defaults=t.extend(t.Series.defaults,{provider:"osm"});class h extends t.ImageElement{}class n extends t.SeriesView{constructor(e){super(e,"rm-tiledweb-series",!0,!1),this._pool={},this._dic={},this._images=[],this.ignorePointer()}_doPrepeare(e,t,i){}_doRender(e,t){const i=this.model,s=i.map,r=i.prepareTiles(s.h1,s.h2,s.v1,s.v2,e,t,this._scale);this.$_layoutTiles(r,i,e,t,this._wBody,this._hBody),this._clip?this._clip.setBounds(0,0,e,t):this._clip=this.clipRect(0,0,e,t)}_doReset(){}_runShowEffect(e){e&&t.SeriesAnimation.grow(this)}click(e){}$_layoutTiles(e,t,i,s,r,l){const o=t.proivder,n=o.url+(o.url.endsWith("/")?"":"/"),a=Math.pow(2,e.level),d=e.wTile,_=e.hTile,c=e.xTile|0,p=e.yTile|0,u=(c-e.xTile)*d,T=(p-e.yTile)*_,f=Math.min(i,r),g=Math.min(s,l),m=(-this.tx-u)/e.wTile|0,v=(-this.ty-T)/e.hTile|0;let y=Math.min(a,Math.ceil((f-u)/e.wTile)),M=Math.min(a,Math.ceil((g-T)/e.hTile));for(;i>r&&(m+y)*e.wTile+this.tx+u<r;)y++;for(;s>l&&(v+M)*e.hTile+this.ty+T<l;)M++;const w=y*M,x=this.control.doc(),S=this._images.slice();S.forEach((e=>{e.deleted=!0})),this._images=[];for(let t=0;t<w;t++){const i=t%y+m,s=(t/y|0)+v,r=`${n}${e.level}/${c+i}/${p+s}.png`;let l=this._dic[r];l?l.deleted=!1:(l=this._pool[r],l?delete this._pool[r]:l=new h(x)),this._pointContainer.append(l),this._dic[r]=l,this._images.push(l),l.setImage(r,d,_),l.trans(i*d,s*_)}S.forEach((e=>{e.deleted&&(delete this._dic[e.url],e.removeLater(1e3,(e=>{this._pool[e.url]=e})))})),this._pointContainer.trans(u,T)}}function a(e){(function(e){return e.Series&&e.SeriesView})(e)&&(e.Series.register(o),e.SeriesView.register([o,n]))}a(s),e.TiledWebSeries=o,e.default=a,Object.defineProperty(e,"__esModule",{value:!0})}));