@antv/l7-component 2.9.21 → 2.9.22-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/control/BaseControl.js +5 -26
- package/es/control/layer.js +13 -28
- package/es/control/logo.js +3 -4
- package/es/control/scale.js +6 -11
- package/es/control/zoom.js +3 -12
- package/es/css/l7.css +502 -0
- package/es/images/layers.png +0 -0
- package/es/images/layers.svg +1 -0
- package/es/images/logo.png +0 -0
- package/es/index.js +10 -10
- package/es/interface.js +1 -2
- package/es/marker-layer.js +27 -27
- package/es/marker.js +21 -27
- package/es/popup.js +16 -34
- package/es/utils/anchor.js +1 -2
- package/lib/control/BaseControl.js +100 -163
- package/lib/control/layer.js +248 -347
- package/lib/control/logo.js +52 -77
- package/lib/control/scale.js +112 -165
- package/lib/control/zoom.js +95 -143
- package/lib/css/l7.css +502 -0
- package/lib/images/layers.png +0 -0
- package/lib/images/layers.svg +1 -0
- package/lib/images/logo.png +0 -0
- package/lib/index.js +53 -135
- package/lib/interface.js +17 -2
- package/lib/marker-layer.js +224 -330
- package/lib/marker.js +271 -404
- package/lib/popup.js +201 -309
- package/lib/utils/anchor.js +54 -37
- package/package.json +9 -9
- package/es/control/BaseControl.js.map +0 -1
- package/es/control/layer.js.map +0 -1
- package/es/control/logo.js.map +0 -1
- package/es/control/scale.js.map +0 -1
- package/es/control/zoom.js.map +0 -1
- package/es/index.js.map +0 -1
- package/es/interface.js.map +0 -1
- package/es/marker-layer.js.map +0 -1
- package/es/marker.js.map +0 -1
- package/es/popup.js.map +0 -1
- package/es/utils/anchor.js.map +0 -1
- package/lib/control/BaseControl.js.map +0 -1
- package/lib/control/layer.js.map +0 -1
- package/lib/control/logo.js.map +0 -1
- package/lib/control/scale.js.map +0 -1
- package/lib/control/zoom.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/interface.js.map +0 -1
- package/lib/marker-layer.js.map +0 -1
- package/lib/marker.js.map +0 -1
- package/lib/popup.js.map +0 -1
- package/lib/utils/anchor.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antv/l7-component",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.22-alpha.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -14,19 +14,19 @@
|
|
|
14
14
|
"scripts": {
|
|
15
15
|
"tsc": "tsc --project tsconfig.build.json",
|
|
16
16
|
"clean": "rimraf dist; rimraf es; rimraf lib;",
|
|
17
|
-
"build": "
|
|
18
|
-
"build:cjs": "
|
|
19
|
-
"build:esm": "
|
|
20
|
-
"watch": "
|
|
17
|
+
"build": "father build",
|
|
18
|
+
"build:cjs": "BABEL_ENV=cjs babel src --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments",
|
|
19
|
+
"build:esm": "BABEL_ENV=esm babel src --root-mode upward --out-dir es --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments",
|
|
20
|
+
"watch": "BABEL_ENV=cjs babel src --watch --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments",
|
|
21
21
|
"lint:ts": "run-p -c lint:ts-*",
|
|
22
|
-
"test": "
|
|
22
|
+
"test": "umi-test --passWithNoTests",
|
|
23
23
|
"sync": "tnpm sync"
|
|
24
24
|
},
|
|
25
25
|
"author": "lzxue",
|
|
26
26
|
"license": "ISC",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@antv/l7-core": "2.9.
|
|
29
|
-
"@antv/l7-utils": "2.9.
|
|
28
|
+
"@antv/l7-core": "2.9.22-alpha.0",
|
|
29
|
+
"@antv/l7-utils": "2.9.22-alpha.0",
|
|
30
30
|
"@babel/runtime": "^7.7.7",
|
|
31
31
|
"eventemitter3": "^4.0.0",
|
|
32
32
|
"inversify": "^5.0.1",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"reflect-metadata": "^0.1.13",
|
|
35
35
|
"supercluster": "^7.0.0"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "df0d36c7370eaa2712be99e81b558cfb4f1d8322",
|
|
38
38
|
"publishConfig": {
|
|
39
39
|
"access": "public"
|
|
40
40
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/control/BaseControl.ts"],"names":["PositionType","TYPES","DOM","EventEmitter","controlId","Control","cfg","controlOption","getDefault","position","TOPRIGHT","name","BOTTOMRIGHT","controlService","removeControl","addControl","sceneContainer","mapsService","get","IMapService","renderService","IRendererService","layerService","ILayerService","IControlService","isShow","container","onAdd","pos","corner","controlCorners","addClass","indexOf","insertBefore","firstChild","appendChild","Error","removeClass","remove","onRemove","e","screenX","screenY","getContainer","focus"],"mappings":"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","sourcesContent":["import {\n IControlOption,\n IControlService,\n ILayerService,\n IMapService,\n IRendererService,\n PositionType,\n TYPES,\n} from '@antv/l7-core';\nimport { DOM } from '@antv/l7-utils';\nimport { EventEmitter } from 'eventemitter3';\nimport { Container } from 'inversify';\n\nexport { PositionType } from '@antv/l7-core';\n\nlet controlId = 0;\nexport default class Control extends EventEmitter {\n public controlOption: IControlOption;\n protected container: HTMLElement;\n protected sceneContainer: Container;\n protected mapsService: IMapService;\n protected renderService: IRendererService;\n protected layerService: ILayerService;\n protected controlService: IControlService;\n\n private isShow: boolean;\n\n constructor(cfg?: Partial<IControlOption>) {\n super();\n this.controlOption = {\n ...this.getDefault(),\n ...(cfg || {}),\n };\n }\n\n public getDefault() {\n return {\n position: PositionType.TOPRIGHT,\n name: `${controlId++}`,\n };\n }\n\n public setPosition(position: PositionType = PositionType.BOTTOMRIGHT) {\n // 考虑组件的自动布局,需要销毁重建\n const controlService = this.controlService;\n if (controlService) {\n controlService.removeControl(this);\n }\n this.controlOption.position = position;\n if (controlService) {\n controlService.addControl(this, this.sceneContainer);\n }\n return this;\n }\n public addTo(sceneContainer: Container) {\n this.mapsService = sceneContainer.get<IMapService>(TYPES.IMapService);\n this.renderService = sceneContainer.get<IRendererService>(\n TYPES.IRendererService,\n );\n this.layerService = sceneContainer.get<ILayerService>(TYPES.ILayerService);\n this.controlService = sceneContainer.get<IControlService>(\n TYPES.IControlService,\n );\n this.sceneContainer = sceneContainer;\n this.isShow = true;\n this.container = this.onAdd();\n const container = this.container;\n const pos = this.controlOption.position;\n const corner = this.controlService.controlCorners[pos];\n DOM.addClass(container, 'l7-control');\n\n if (pos.indexOf('bottom') !== -1) {\n corner.insertBefore(container, corner.firstChild);\n } else {\n corner.appendChild(container);\n }\n return this;\n }\n public onAdd(): HTMLElement {\n throw new Error('Method not implemented.');\n }\n\n public onRemove(): void {\n throw new Error('Method not implemented.');\n }\n public hide() {\n const container = this.container;\n DOM.addClass(container, 'l7-control-hide');\n this.isShow = false;\n }\n public show() {\n const container = this.container;\n DOM.removeClass(container, 'l7-control-hide');\n this.isShow = true;\n }\n public remove() {\n if (!this.mapsService) {\n return this;\n }\n DOM.remove(this.container);\n this.onRemove();\n }\n public _refocusOnMap(e: MouseEvent) {\n // if map exists and event is not a keyboard event\n if (this.mapsService && e && e.screenX > 0 && e.screenY > 0) {\n const container = this.mapsService.getContainer();\n if (container !== null) {\n container.focus();\n }\n }\n }\n}\n"],"file":"BaseControl.js"}
|
package/es/control/layer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/control/layer.ts"],"names":["PositionType","bindAll","DOM","Control","Layers","cfg","layerControlInputs","layers","lastZIndex","handlingClick","initLayers","collapsed","position","TOPRIGHT","autoZIndex","hideSingleBase","sortLayers","name","initLayout","update","mapsService","on","checkDisabledLayers","forEach","layerItem","layer","onLayerChange","container","addLayer","renderService","getViewportSize","height","addClass","form","style","acceptableHeight","offsetTop","clientHeight","removeClass","off","collapse","className","create","controlOption","setAttribute","addEventListener","expand","layersLink","link","title","baseLayersList","separator","overlaysList","appendChild","baseLayers","overlayers","Object","keys","index","empty","baseLayersPresent","overlaysPresent","i","obj","baseLayersCount","length","addItem","overlay","display","inputs","input","zoom","getZoom","layerService","getLayer","layerId","inited","minZoom","getMinZoom","maxZoom","getMaxZoom","disabled","push","sortFunction","sort","a","b","setZIndex","expandIfNotCollapsed","e","target","type","emit","checked","radioHtml","radioFragment","document","createElement","innerHTML","firstChild","label","id","isVisible","defaultChecked","createRadioElement","onInputClick","holder","addedLayers","removedLayers","l","hide","show"],"mappings":";;;;;;;;;;;;AAAA,SAASA,YAAT,QAA6B,eAA7B;AACA,SAASC,OAAT,EAAkBC,GAAlB,QAA6B,gBAA7B;AAEA,OAAOC,OAAP,MAAoB,eAApB;;IAMqBC,M;;;;;AAWnB,kBAAYC,GAAZ,EAA+C;AAAA;;AAAA;;AAC7C,8BAAMA,GAAN;;AAD6C;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAE7C,UAAKC,kBAAL,GAA0B,EAA1B;AACA,UAAKC,MAAL,GAAc,EAAd;AACA,UAAKC,UAAL,GAAkB,CAAlB;AACA,UAAKC,aAAL,GAAqB,KAArB;;AACA,UAAKC,UAAL;;AAEAT,IAAAA,OAAO,CACL,CACE,qBADF,EAEE,eAFF,EAGE,UAHF,EAIE,QAJF,EAKE,QALF,EAME,cANF,CADK,gCAAP;AAR6C;AAmB9C;;;;WAED,sBAAoB;AAClB,aAAO;AACLU,QAAAA,SAAS,EAAE,IADN;AAELC,QAAAA,QAAQ,EAAEZ,YAAY,CAACa,QAFlB;AAGLC,QAAAA,UAAU,EAAE,IAHP;AAILC,QAAAA,cAAc,EAAE,KAJX;AAKLC,QAAAA,UAAU,EAAE,KALP;AAMLC,QAAAA,IAAI,EAAE;AAND,OAAP;AAQD;;;WACD,iBAAe;AAAA;;AACb,WAAKC,UAAL;AACA,WAAKC,MAAL;AACA,WAAKC,WAAL,CAAiBC,EAAjB,CAAoB,SAApB,EAA+B,KAAKC,mBAApC;AACA,WAAKf,MAAL,CAAYgB,OAAZ,CAAoB,UAACC,SAAD,EAAe;AACjCA,QAAAA,SAAS,CAACC,KAAV,CAAgBJ,EAAhB,CAAmB,QAAnB,EAA6B,MAAI,CAACK,aAAlC;AACAF,QAAAA,SAAS,CAACC,KAAV,CAAgBJ,EAAhB,CAAmB,KAAnB,EAA0B,MAAI,CAACK,aAA/B;AACD,OAHD;AAIA,aAAO,KAAKC,SAAZ;AACD;;;WAED,wBAAsBF,KAAtB,EAAkCR,IAAlC,EAAyD;AACvD,WAAKW,QAAL,CAAcH,KAAd,EAAqBR,IAArB,EAA2B,IAA3B;AACA,aAAO,KAAKG,WAAL,GAAmB,KAAKD,MAAL,EAAnB,GAAmC,IAA1C;AACD;;;WACD,kBAAgB;AACd,kCAAmB,KAAKU,aAAL,CAAmBC,eAAnB,EAAnB;AAAA,UAAQC,MAAR,yBAAQA,MAAR;;AACA7B,MAAAA,GAAG,CAAC8B,QAAJ,CAAa,KAAKL,SAAlB,EAA6B,4BAA7B;AACA,WAAKM,IAAL,CAAUC,KAAV,CAAgBH,MAAhB,GAAyB,MAAzB;AACA,UAAMI,gBAAgB,GAAGJ,MAAM,IAAI,KAAKJ,SAAL,CAAeS,SAAf,GAA2B,EAA/B,CAA/B;;AACA,UAAID,gBAAgB,GAAG,KAAKF,IAAL,CAAUI,YAAjC,EAA+C;AAC7CnC,QAAAA,GAAG,CAAC8B,QAAJ,CAAa,KAAKC,IAAlB,EAAwB,6BAAxB;AACA,aAAKA,IAAL,CAAUC,KAAV,CAAgBH,MAAhB,GAAyBI,gBAAgB,GAAG,IAA5C;AACD,OAHD,MAGO;AACLjC,QAAAA,GAAG,CAACoC,WAAJ,CAAgB,KAAKL,IAArB,EAA2B,6BAA3B;AACD;;AACD,WAAKX,mBAAL;AACA,aAAO,IAAP;AACD;;;WAED,oBAAkB;AAChBpB,MAAAA,GAAG,CAACoC,WAAJ,CAAgB,KAAKX,SAArB,EAAgC,4BAAhC;AACA,aAAO,IAAP;AACD;;;WAED,oBAAkB;AAAA;;AAChB,UAAI,CAAC,KAAKP,WAAV,EAAuB;AACrB;AACD;;AACD,WAAKA,WAAL,CAAiBmB,GAAjB,CAAqB,OAArB,EAA8B,KAAKC,QAAnC;AACA,WAAKjC,MAAL,CAAYgB,OAAZ,CAAoB,UAACC,SAAD,EAAe;AACjCA,QAAAA,SAAS,CAACC,KAAV,CAAgBc,GAAhB,CAAoB,QAApB,EAA8B,MAAI,CAACb,aAAnC;AACAF,QAAAA,SAAS,CAACC,KAAV,CAAgBc,GAAhB,CAAoB,KAApB,EAA2B,MAAI,CAACb,aAAhC;AACD,OAHD;AAID;;;WACD,sBAAqB;AACnB,UAAMe,SAAS,GAAG,mBAAlB;AACA,UAAMd,SAAS,GAAI,KAAKA,SAAL,GAAiBzB,GAAG,CAACwC,MAAJ,CAAW,KAAX,EAAkBD,SAAlB,CAApC;AACA,UAAQ9B,SAAR,GAAsB,KAAKgC,aAA3B,CAAQhC,SAAR;AAEAgB,MAAAA,SAAS,CAACiB,YAAV,CAAuB,eAAvB,EAAwC,MAAxC;AACA,UAAMX,IAAI,GAAI,KAAKA,IAAL,GAAY/B,GAAG,CAACwC,MAAJ,CACxB,MADwB,EAExBD,SAAS,GAAG,OAFY,CAA1B;;AAKA,UAAI9B,SAAJ,EAAe;AACb,aAAKS,WAAL,CAAiBC,EAAjB,CAAoB,OAApB,EAA6B,KAAKmB,QAAlC;AACAb,QAAAA,SAAS,CAACkB,gBAAV,CAA2B,YAA3B,EAAyC,KAAKC,MAA9C;AACAnB,QAAAA,SAAS,CAACkB,gBAAV,CAA2B,YAA3B,EAAyC,KAAKL,QAA9C;AACD;;AAED,WAAKO,UAAL,GAAkB7C,GAAG,CAACwC,MAAJ,CAAW,GAAX,EAAgBD,SAAS,GAAG,SAA5B,EAAuCd,SAAvC,CAAlB;AACA,UAAMqB,IAAI,GAAG,KAAKD,UAAlB;AAEAC,MAAAA,IAAI,CAACC,KAAL,GAAa,QAAb;;AACA,UAAI,CAACtC,SAAL,EAAgB;AACd,aAAKmC,MAAL;AACD;;AACD,WAAKI,cAAL,GAAsBhD,GAAG,CAACwC,MAAJ,CAAW,KAAX,EAAkBD,SAAS,GAAG,OAA9B,EAAuCR,IAAvC,CAAtB;AACA,WAAKkB,SAAL,GAAiBjD,GAAG,CAACwC,MAAJ,CAAW,KAAX,EAAkBD,SAAS,GAAG,YAA9B,EAA4CR,IAA5C,CAAjB;AACA,WAAKmB,YAAL,GAAoBlD,GAAG,CAACwC,MAAJ,CAAW,KAAX,EAAkBD,SAAS,GAAG,WAA9B,EAA2CR,IAA3C,CAApB;AACAN,MAAAA,SAAS,CAAC0B,WAAV,CAAsBpB,IAAtB;AACD;;;WACD,sBAAqB;AAAA;;AACnB,gCAA6C,KAAKU,aAAlD;AAAA,sDAAQW,UAAR;AAAA,UAAQA,UAAR,sCAAqB,EAArB;AAAA,sDAAyBC,UAAzB;AAAA,UAAyBA,UAAzB,sCAAsC,EAAtC;AACAC,MAAAA,MAAM,CAACC,IAAP,CAAYH,UAAZ,EAAwB/B,OAAxB,CAAgC,UAACN,IAAD,EAAeyC,KAAf,EAAiC;AAE/D,QAAA,MAAI,CAAC9B,QAAL,CAAc0B,UAAU,CAACrC,IAAD,CAAxB,EAAgCA,IAAhC,EAAsC,KAAtC;AACD,OAHD;AAIAuC,MAAAA,MAAM,CAACC,IAAP,CAAYF,UAAZ,EAAwBhC,OAAxB,CAAgC,UAACN,IAAD,EAAYyC,KAAZ,EAA8B;AAE5D,QAAA,MAAI,CAAC9B,QAAL,CAAc2B,UAAU,CAACtC,IAAD,CAAxB,EAAgCA,IAAhC,EAAsC,IAAtC;AACD,OAHD;AAID;;;WAED,kBAAiB;AACf,UAAI,CAAC,KAAKU,SAAV,EAAqB;AACnB,eAAO,IAAP;AACD;;AAEDzB,MAAAA,GAAG,CAACyD,KAAJ,CAAU,KAAKT,cAAf;AACAhD,MAAAA,GAAG,CAACyD,KAAJ,CAAU,KAAKP,YAAf;AAEA,WAAK9C,kBAAL,GAA0B,EAA1B;AACA,UAAIsD,iBAAJ;AACA,UAAIC,eAAJ;AACA,UAAIC,CAAJ;AACA,UAAIC,GAAJ;AACA,UAAIC,eAAe,GAAG,CAAtB;;AAEA,WAAKF,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,KAAKvD,MAAL,CAAY0D,MAA5B,EAAoCH,CAAC,EAArC,EAAyC;AACvCC,QAAAA,GAAG,GAAG,KAAKxD,MAAL,CAAYuD,CAAZ,CAAN;AACA,aAAKI,OAAL,CAAaH,GAAb;AACAF,QAAAA,eAAe,GAAGA,eAAe,IAAIE,GAAG,CAACI,OAAzC;AACAP,QAAAA,iBAAiB,GAAGA,iBAAiB,IAAI,CAACG,GAAG,CAACI,OAA9C;AACAH,QAAAA,eAAe,IAAI,CAACD,GAAG,CAACI,OAAL,GAAe,CAAf,GAAmB,CAAtC;AACD;;AAGD,UAAI,KAAKxB,aAAL,CAAmB5B,cAAvB,EAAuC;AACrC6C,QAAAA,iBAAiB,GAAGA,iBAAiB,IAAII,eAAe,GAAG,CAA3D;AACA,aAAKd,cAAL,CAAoBhB,KAApB,CAA0BkC,OAA1B,GAAoCR,iBAAiB,GAAG,EAAH,GAAQ,MAA7D;AACD;;AAED,WAAKT,SAAL,CAAejB,KAAf,CAAqBkC,OAArB,GACEP,eAAe,IAAID,iBAAnB,GAAuC,EAAvC,GAA4C,MAD9C;AAGA,aAAO,IAAP;AACD;;;WAED,+BAA8B;AAC5B,UAAMS,MAAM,GAAG,KAAK/D,kBAApB;AACA,UAAIgE,KAAJ;AACA,UAAI7C,KAAJ;AACA,UAAM8C,IAAI,GAAG,KAAKnD,WAAL,CAAiBoD,OAAjB,EAAb;;AAEA,WAAK,IAAIV,CAAC,GAAGO,MAAM,CAACJ,MAAP,GAAgB,CAA7B,EAAgCH,CAAC,IAAI,CAArC,EAAwCA,CAAC,EAAzC,EAA6C;AAC3CQ,QAAAA,KAAK,GAAGD,MAAM,CAACP,CAAD,CAAd;AACArC,QAAAA,KAAK,GAAG,KAAKgD,YAAL,CAAkBC,QAAlB,CAA2BJ,KAAK,CAACK,OAAjC,CAAR;;AAEA,YAAIlD,KAAK,IAAIA,KAAK,CAACmD,MAAnB,EAA2B;AACzB,cAAMC,OAAO,GAAGpD,KAAK,CAACqD,UAAN,EAAhB;AACA,cAAMC,OAAO,GAAGtD,KAAK,CAACuD,UAAN,EAAhB;AAEAV,UAAAA,KAAK,CAACW,QAAN,GAAiBV,IAAI,GAAGM,OAAP,IAAkBN,IAAI,GAAGQ,OAA1C;AACD;AACF;AACF;;;WAED,kBAAiBtD,KAAjB,EAA6BR,IAA7B,EAAoDkD,OAApD,EAAsE;AACpE,UAAI,KAAK/C,WAAT,EAAsB;AACpBK,QAAAA,KAAK,CAACJ,EAAN,CAAS,KAAT,EAAgB,KAAKK,aAArB;AACAD,QAAAA,KAAK,CAACJ,EAAN,CAAS,QAAT,EAAmB,KAAKK,aAAxB;AACD;;AACD,WAAKnB,MAAL,CAAY2E,IAAZ,CAAiB;AACfzD,QAAAA,KAAK,EAALA,KADe;AAEfR,QAAAA,IAAI,EAAJA,IAFe;AAGfkD,QAAAA,OAAO,EAAPA;AAHe,OAAjB;AAKA,iCAAiD,KAAKxB,aAAtD;AAAA,UAAQ3B,UAAR,wBAAQA,UAAR;AAAA,UAAoBmE,YAApB,wBAAoBA,YAApB;AAAA,UAAkCrE,UAAlC,wBAAkCA,UAAlC;;AACA,UAAIE,UAAJ,EAAgB;AACd,aAAKT,MAAL,CAAY6E,IAAZ,CAAiB,UAACC,CAAD,EAAIC,CAAJ,EAAU;AACzB,iBAAOH,YAAY,CAACE,CAAC,CAAC5D,KAAH,EAAU6D,CAAC,CAAC7D,KAAZ,EAAmB4D,CAAC,CAACpE,IAArB,EAA2BqE,CAAC,CAACrE,IAA7B,CAAnB;AACD,SAFD;AAGD;;AAED,UAAIH,UAAU,IAAIW,KAAK,CAAC8D,SAAxB,EAAmC;AACjC,aAAK/E,UAAL;AACAiB,QAAAA,KAAK,CAAC8D,SAAN,CAAgB,KAAK/E,UAArB;AACD;;AAED,WAAKgF,oBAAL;AACD;;;WAED,gCAA+B;AAC7B,UAAI,KAAKpE,WAAL,IAAoB,CAAC,KAAKuB,aAAL,CAAmBhC,SAA5C,EAAuD;AACrD,aAAKmC,MAAL;AACD;;AACD,aAAO,IAAP;AACD;;;WAED,uBAAsB2C,CAAtB,EAA8B;AAC5B,UAAI,CAAC,KAAKhF,aAAV,EAAyB;AACvB,aAAKU,MAAL;AACD;;AAED,UAAM4C,GAAG,GAAG,KAAKU,YAAL,CAAkBC,QAAlB,CAA2Be,CAAC,CAACC,MAAF,CAASf,OAApC,CAAZ;AAGA,UAAMgB,IAAI,GAAG5B,GAAG,SAAH,IAAAA,GAAG,WAAH,IAAAA,GAAG,CAAEI,OAAL,GACTsB,CAAC,CAACE,IAAF,KAAW,KAAX,GACE,YADF,GAEE,eAHO,GAITF,CAAC,CAACE,IAAF,KAAW,KAAX,GACA,iBADA,GAEA,IANJ;;AAQA,UAAIA,IAAJ,EAAU;AACR,aAAKC,IAAL,CAAUD,IAAV,EAAgB5B,GAAhB;AACD;AACF;;;WAED,4BAA2B9C,IAA3B,EAAyC4E,OAAzC,EAAsE;AACpE,UAAMC,SAAS,GACb,kEACA7E,IADA,GAEA,GAFA,IAGC4E,OAAO,GAAG,oBAAH,GAA0B,EAHlC,IAIA,IALF;AAOA,UAAME,aAAa,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAtB;AACAF,MAAAA,aAAa,CAACG,SAAd,GAA0BJ,SAA1B;AAEA,aAAOC,aAAa,CAACI,UAArB;AACD;;;WAED,iBAAgBpC,GAAhB,EAA0B;AACxB,UAAMqC,KAAK,GAAGJ,QAAQ,CAACC,aAAT,CAAuB,OAAvB,CAAd;AACA,UAAMxE,KAAK,GAAG,KAAKgD,YAAL,CAAkBC,QAAlB,CAA2BX,GAAG,CAACtC,KAAJ,CAAU4E,EAArC,CAAd;AACA,UAAMR,OAAO,GAAGpE,KAAK,IAAIA,KAAK,CAACmD,MAAf,IAAyBb,GAAG,CAACtC,KAAJ,CAAU6E,SAAV,EAAzC;AACA,UAAIhC,KAAJ;;AACA,UAAIP,GAAG,CAACI,OAAR,EAAiB;AACfG,QAAAA,KAAK,GAAG0B,QAAQ,CAACC,aAAT,CAAuB,OAAvB,CAAR;AACA3B,QAAAA,KAAK,CAACqB,IAAN,GAAa,UAAb;AACArB,QAAAA,KAAK,CAAC7B,SAAN,GAAkB,4BAAlB;AACA6B,QAAAA,KAAK,CAACiC,cAAN,GAAuBV,OAAvB;AACD,OALD,MAKO;AACLvB,QAAAA,KAAK,GAAG,KAAKkC,kBAAL,CAAwB,gBAAxB,EAA0CX,OAA1C,CAAR;AACD;;AACD,WAAKvF,kBAAL,CAAwB4E,IAAxB,CAA6BZ,KAA7B;AACAA,MAAAA,KAAK,CAACK,OAAN,GAAgBZ,GAAG,CAACtC,KAAJ,CAAU4E,EAA1B;AACA/B,MAAAA,KAAK,CAACzB,gBAAN,CAAuB,OAAvB,EAAgC,KAAK4D,YAArC;AAEA,UAAMxF,IAAI,GAAG+E,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAb;AACAhF,MAAAA,IAAI,CAACiF,SAAL,GAAiB,MAAMnC,GAAG,CAAC9C,IAA3B;AAEA,UAAMyF,MAAM,GAAGV,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAf;AAEAG,MAAAA,KAAK,CAAC/C,WAAN,CAAkBqD,MAAlB;AACAA,MAAAA,MAAM,CAACrD,WAAP,CAAmBiB,KAAnB;AACAoC,MAAAA,MAAM,CAACrD,WAAP,CAAmBpC,IAAnB;AAEA,UAAMU,SAAS,GAAGoC,GAAG,CAACI,OAAJ,GAAc,KAAKf,YAAnB,GAAkC,KAAKF,cAAzD;AACAvB,MAAAA,SAAS,CAAC0B,WAAV,CAAsB+C,KAAtB;AAEA,WAAK9E,mBAAL;AACA,aAAO8E,KAAP;AACD;;;WAED,wBAAuB;AACrB,UAAM/B,MAAM,GAAG,KAAK/D,kBAApB;AACA,UAAIgE,KAAJ;AACA,UAAI7C,KAAJ;AACA,UAAMkF,WAAW,GAAG,EAApB;AACA,UAAMC,aAAa,GAAG,EAAtB;AACA,WAAKnG,aAAL,GAAqB,IAArB;;AACA,WAAK,IAAIqD,CAAC,GAAGO,MAAM,CAACJ,MAAP,GAAgB,CAA7B,EAAgCH,CAAC,IAAI,CAArC,EAAwCA,CAAC,EAAzC,EAA6C;AAC3CQ,QAAAA,KAAK,GAAGD,MAAM,CAACP,CAAD,CAAd;AACArC,QAAAA,KAAK,GAAG,KAAKgD,YAAL,CAAkBC,QAAlB,CAA2BJ,KAAK,CAACK,OAAjC,CAAR;;AACA,YAAIL,KAAK,CAACuB,OAAV,EAAmB;AACjBc,UAAAA,WAAW,CAACzB,IAAZ,CAAiBzD,KAAjB;AACD,SAFD,MAEO,IAAI,CAAC6C,KAAK,CAACuB,OAAX,EAAoB;AACzBe,UAAAA,aAAa,CAAC1B,IAAd,CAAmBzD,KAAnB;AACD;AACF;;AACDmF,MAAAA,aAAa,CAACrF,OAAd,CAAsB,UAACsF,CAAD,EAAY;AAChCA,QAAAA,CAAC,CAACC,IAAF;AACD,OAFD;AAGAH,MAAAA,WAAW,CAACpF,OAAZ,CAAoB,UAACsF,CAAD,EAAY;AAC9BA,QAAAA,CAAC,CAACE,IAAF;AACD,OAFD;AAIA,WAAKtG,aAAL,GAAqB,KAArB;AACD;;;;EAlTiCN,O;;SAAfC,M","sourcesContent":["import { PositionType } from '@antv/l7-core';\nimport { bindAll, DOM } from '@antv/l7-utils';\nimport { ILayerControlOption } from '../interface';\nimport Control from './BaseControl';\n\ninterface IInputItem extends HTMLInputElement {\n layerId: string;\n}\n\nexport default class Layers extends Control {\n private layerControlInputs: any[];\n private layers: any[];\n private lastZIndex: number;\n private handlingClick: boolean;\n private layersLink: HTMLElement;\n private baseLayersList: HTMLElement;\n private separator: HTMLElement;\n private overlaysList: HTMLElement;\n private form: HTMLElement;\n\n constructor(cfg: Partial<ILayerControlOption>) {\n super(cfg);\n this.layerControlInputs = [];\n this.layers = [];\n this.lastZIndex = 0;\n this.handlingClick = false;\n this.initLayers();\n\n bindAll(\n [\n 'checkDisabledLayers',\n 'onLayerChange',\n 'collapse',\n 'extend',\n 'expand',\n 'onInputClick',\n ],\n this,\n );\n }\n\n public getDefault() {\n return {\n collapsed: true,\n position: PositionType.TOPRIGHT,\n autoZIndex: true,\n hideSingleBase: false,\n sortLayers: false,\n name: 'layers',\n };\n }\n public onAdd() {\n this.initLayout();\n this.update();\n this.mapsService.on('zoomend', this.checkDisabledLayers);\n this.layers.forEach((layerItem) => {\n layerItem.layer.on('remove', this.onLayerChange);\n layerItem.layer.on('add', this.onLayerChange);\n });\n return this.container;\n }\n\n public addVisualLayer(layer: any, name: string | number) {\n this.addLayer(layer, name, true);\n return this.mapsService ? this.update() : this;\n }\n public expand() {\n const { height } = this.renderService.getViewportSize();\n DOM.addClass(this.container, 'l7-control-layers-expanded');\n this.form.style.height = 'null';\n const acceptableHeight = height - (this.container.offsetTop + 50);\n if (acceptableHeight < this.form.clientHeight) {\n DOM.addClass(this.form, 'l7-control-layers-scrollbar');\n this.form.style.height = acceptableHeight + 'px';\n } else {\n DOM.removeClass(this.form, 'l7-control-layers-scrollbar');\n }\n this.checkDisabledLayers();\n return this;\n }\n\n public collapse() {\n DOM.removeClass(this.container, 'l7-control-layers-expanded');\n return this;\n }\n\n public onRemove() {\n if (!this.mapsService) {\n return;\n }\n this.mapsService.off('click', this.collapse);\n this.layers.forEach((layerItem) => {\n layerItem.layer.off('remove', this.onLayerChange);\n layerItem.layer.off('add', this.onLayerChange);\n });\n }\n private initLayout() {\n const className = 'l7-control-layers';\n const container = (this.container = DOM.create('div', className));\n const { collapsed } = this.controlOption;\n // makes this work on IE touch devices by stopping it from firing a mouseout event when the touch is released\n container.setAttribute('aria-haspopup', 'true');\n const form = (this.form = DOM.create(\n 'form',\n className + '-list',\n ) as HTMLElement);\n\n if (collapsed) {\n this.mapsService.on('click', this.collapse);\n container.addEventListener('mouseenter', this.expand);\n container.addEventListener('mouseleave', this.collapse);\n }\n\n this.layersLink = DOM.create('a', className + '-toggle', container);\n const link = this.layersLink;\n // link.href = '#';\n link.title = 'Layers';\n if (!collapsed) {\n this.expand();\n }\n this.baseLayersList = DOM.create('div', className + '-base', form);\n this.separator = DOM.create('div', className + '-separator', form);\n this.overlaysList = DOM.create('div', className + '-overlays', form);\n container.appendChild(form);\n }\n private initLayers() {\n const { baseLayers = {}, overlayers = {} } = this.controlOption;\n Object.keys(baseLayers).forEach((name: string, index: number) => {\n // baseLayers[name].once('inited', this.update);\n this.addLayer(baseLayers[name], name, false);\n });\n Object.keys(overlayers).forEach((name: any, index: number) => {\n // overlayers[name].once('inited', this.update);\n this.addLayer(overlayers[name], name, true);\n });\n }\n\n private update() {\n if (!this.container) {\n return this;\n }\n\n DOM.empty(this.baseLayersList);\n DOM.empty(this.overlaysList);\n\n this.layerControlInputs = [];\n let baseLayersPresent;\n let overlaysPresent;\n let i;\n let obj;\n let baseLayersCount = 0;\n\n for (i = 0; i < this.layers.length; i++) {\n obj = this.layers[i];\n this.addItem(obj);\n overlaysPresent = overlaysPresent || obj.overlay;\n baseLayersPresent = baseLayersPresent || !obj.overlay;\n baseLayersCount += !obj.overlay ? 1 : 0;\n }\n\n // Hide base layers section if there's only one layer.\n if (this.controlOption.hideSingleBase) {\n baseLayersPresent = baseLayersPresent && baseLayersCount > 1;\n this.baseLayersList.style.display = baseLayersPresent ? '' : 'none';\n }\n\n this.separator.style.display =\n overlaysPresent && baseLayersPresent ? '' : 'none';\n\n return this;\n }\n\n private checkDisabledLayers() {\n const inputs = this.layerControlInputs;\n let input: IInputItem;\n let layer;\n const zoom = this.mapsService.getZoom();\n\n for (let i = inputs.length - 1; i >= 0; i--) {\n input = inputs[i];\n layer = this.layerService.getLayer(input.layerId);\n\n if (layer && layer.inited) {\n const minZoom = layer.getMinZoom();\n const maxZoom = layer.getMaxZoom();\n\n input.disabled = zoom < minZoom || zoom > maxZoom;\n }\n }\n }\n\n private addLayer(layer: any, name: string | number, overlay: boolean) {\n if (this.mapsService) {\n layer.on('add', this.onLayerChange);\n layer.on('remove', this.onLayerChange);\n }\n this.layers.push({\n layer,\n name,\n overlay,\n });\n const { sortLayers, sortFunction, autoZIndex } = this.controlOption;\n if (sortLayers) {\n this.layers.sort((a, b) => {\n return sortFunction(a.layer, b.layer, a.name, b.name);\n });\n }\n\n if (autoZIndex && layer.setZIndex) {\n this.lastZIndex++;\n layer.setZIndex(this.lastZIndex);\n }\n\n this.expandIfNotCollapsed();\n }\n\n private expandIfNotCollapsed() {\n if (this.mapsService && !this.controlOption.collapsed) {\n this.expand();\n }\n return this;\n }\n\n private onLayerChange(e: any) {\n if (!this.handlingClick) {\n this.update();\n }\n\n const obj = this.layerService.getLayer(e.target.layerId);\n\n // @ts-ignore\n const type = obj?.overlay\n ? e.type === 'add'\n ? 'overlayadd'\n : 'overlayremove'\n : e.type === 'add'\n ? 'baselayerchange'\n : null;\n\n if (type) {\n this.emit(type, obj);\n }\n }\n\n private createRadioElement(name: string, checked: boolean): ChildNode {\n const radioHtml =\n '<input type=\"radio\" class=\"l7-control-layers-selector\" name=\"' +\n name +\n '\"' +\n (checked ? ' checked=\"checked\"' : '') +\n '/>';\n\n const radioFragment = document.createElement('div');\n radioFragment.innerHTML = radioHtml;\n\n return radioFragment.firstChild as ChildNode;\n }\n\n private addItem(obj: any) {\n const label = document.createElement('label');\n const layer = this.layerService.getLayer(obj.layer.id);\n const checked = layer && layer.inited && obj.layer.isVisible();\n let input: IInputItem;\n if (obj.overlay) {\n input = document.createElement('input') as IInputItem;\n input.type = 'checkbox';\n input.className = 'l7-control-layers-selector';\n input.defaultChecked = checked;\n } else {\n input = this.createRadioElement('l7-base-layers', checked) as IInputItem;\n }\n this.layerControlInputs.push(input);\n input.layerId = obj.layer.id;\n input.addEventListener('click', this.onInputClick);\n\n const name = document.createElement('span');\n name.innerHTML = ' ' + obj.name;\n\n const holder = document.createElement('div');\n\n label.appendChild(holder);\n holder.appendChild(input);\n holder.appendChild(name);\n\n const container = obj.overlay ? this.overlaysList : this.baseLayersList;\n container.appendChild(label);\n\n this.checkDisabledLayers();\n return label;\n }\n\n private onInputClick() {\n const inputs = this.layerControlInputs;\n let input;\n let layer;\n const addedLayers = [];\n const removedLayers = [];\n this.handlingClick = true;\n for (let i = inputs.length - 1; i >= 0; i--) {\n input = inputs[i];\n layer = this.layerService.getLayer(input.layerId);\n if (input.checked) {\n addedLayers.push(layer);\n } else if (!input.checked) {\n removedLayers.push(layer);\n }\n }\n removedLayers.forEach((l: any) => {\n l.hide();\n });\n addedLayers.forEach((l: any) => {\n l.show();\n });\n\n this.handlingClick = false;\n }\n}\n"],"file":"layer.js"}
|
package/es/control/logo.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/control/logo.ts"],"names":["DOM","Control","PositionType","Logo","position","BOTTOMLEFT","name","className","container","create","anchor","target","rel","href","setAttribute","appendChild"],"mappings":";;;;;;;;;;AACA,SAASA,GAAT,QAAoB,gBAApB;AACA,OAAOC,OAAP,IAAkBC,YAAlB,QAAsC,eAAtC;;IAEqBC,I;;;;;;;;;;;;;WACnB,sBAAoB;AAClB,aAAO;AACLC,QAAAA,QAAQ,EAAEF,YAAY,CAACG,UADlB;AAELC,QAAAA,IAAI,EAAE;AAFD,OAAP;AAID;;;WACD,iBAAe;AACb,UAAMC,SAAS,GAAG,iBAAlB;AACA,UAAMC,SAAS,GAAGR,GAAG,CAACS,MAAJ,CAAW,KAAX,EAAkBF,SAAlB,CAAlB;AACA,UAAMG,MAAuB,GAAGV,GAAG,CAACS,MAAJ,CAC9B,GAD8B,EAE9B,cAF8B,CAAhC;AAIAC,MAAAA,MAAM,CAACC,MAAP,GAAgB,QAAhB;AACAD,MAAAA,MAAM,CAACE,GAAP,GAAa,mBAAb;AACAF,MAAAA,MAAM,CAACG,IAAP,GAAc,4BAAd;AACAH,MAAAA,MAAM,CAACI,YAAP,CAAoB,YAApB,EAAkC,WAAlC;AACAJ,MAAAA,MAAM,CAACI,YAAP,CAAoB,KAApB,EAA2B,mBAA3B;AACAN,MAAAA,SAAS,CAACO,WAAV,CAAsBL,MAAtB;AACA,aAAOF,SAAP;AACD;;;WAED,oBAAkB;AAChB,aAAO,IAAP;AACD;;;;EAzB+BP,O;;SAAbE,I","sourcesContent":["import { IControlOption } from '@antv/l7-core';\nimport { DOM } from '@antv/l7-utils';\nimport Control, { PositionType } from './BaseControl';\n\nexport default class Logo extends Control {\n public getDefault() {\n return {\n position: PositionType.BOTTOMLEFT,\n name: 'logo',\n };\n }\n public onAdd() {\n const className = 'l7-control-logo';\n const container = DOM.create('div', className);\n const anchor: HTMLLinkElement = DOM.create(\n 'a',\n 'l7-ctrl-logo',\n ) as HTMLLinkElement;\n anchor.target = '_blank';\n anchor.rel = 'noopener nofollow';\n anchor.href = 'https://antv.alipay.com/l7';\n anchor.setAttribute('aria-label', 'AntV logo');\n anchor.setAttribute('rel', 'noopener nofollow');\n container.appendChild(anchor);\n return container;\n }\n\n public onRemove() {\n return null;\n }\n}\n"],"file":"logo.js"}
|
package/es/control/scale.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/control/scale.ts"],"names":["bindAll","DOM","lnglatDistance","Control","PositionType","Scale","cfg","position","BOTTOMLEFT","maxWidth","metric","updateWhenIdle","imperial","name","className","container","create","addScales","controlOption","mapsService","on","update","off","y","getSize","p1","containerToLngLat","p2","maxMeters","lng","lat","updateScales","updateMetric","updateImperial","meters","getRoundNum","label","updateScale","mScale","maxFeet","maxMiles","miles","feet","iScale","scale","text","ratio","style","width","Math","round","innerHTML","num","pow10","pow","floor","length","d"],"mappings":"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","sourcesContent":["import { bindAll, DOM, lnglatDistance } from '@antv/l7-utils';\nimport { IScaleControlOption } from '../interface';\nimport Control, { PositionType } from './BaseControl';\n\nexport default class Scale extends Control {\n private mScale: HTMLElement;\n private iScale: HTMLElement;\n constructor(cfg?: Partial<IScaleControlOption>) {\n super(cfg);\n bindAll(['update'], this);\n }\n\n public getDefault() {\n return {\n position: PositionType.BOTTOMLEFT,\n maxWidth: 100,\n metric: true,\n updateWhenIdle: false,\n imperial: false,\n name: 'scale',\n };\n }\n\n public onAdd() {\n const className = 'l7-control-scale';\n const container = DOM.create('div', className);\n this.addScales(className + '-line', container);\n const { updateWhenIdle } = this.controlOption;\n // TODO: 高德地图和MapBox地图事件不一致问题\n // 高德zoomchange\n this.mapsService.on(updateWhenIdle ? 'moveend' : 'mapmove', this.update);\n this.mapsService.on(updateWhenIdle ? 'zoomend' : 'zoomchange', this.update);\n this.update();\n\n return container;\n }\n public onRemove() {\n const { updateWhenIdle } = this.controlOption;\n this.mapsService.off(\n updateWhenIdle ? 'zoomend' : 'zoomchange',\n this.update,\n );\n this.mapsService.off(updateWhenIdle ? 'moveend' : 'mapmove', this.update);\n }\n public update() {\n const mapsService = this.mapsService;\n const { maxWidth } = this.controlOption;\n const y = mapsService.getSize()[1] / 2;\n\n const p1 = mapsService.containerToLngLat([0, y]);\n const p2 = mapsService.containerToLngLat([maxWidth, y]);\n const maxMeters = lnglatDistance([p1.lng, p1.lat], [p2.lng, p2.lat]);\n this.updateScales(maxMeters);\n }\n public updateScales(maxMeters: number) {\n const { metric, imperial } = this.controlOption;\n if (metric && maxMeters) {\n this.updateMetric(maxMeters);\n }\n if (imperial && maxMeters) {\n this.updateImperial(maxMeters);\n }\n }\n private updateMetric(maxMeters: number) {\n const meters = this.getRoundNum(maxMeters);\n const label = meters < 1000 ? meters + ' m' : meters / 1000 + ' km';\n this.updateScale(this.mScale, label, meters / maxMeters);\n }\n private updateImperial(maxMeters: number) {\n const maxFeet = maxMeters * 3.2808399;\n let maxMiles: number;\n let miles: number;\n let feet: number;\n\n if (maxFeet > 5280) {\n maxMiles = maxFeet / 5280;\n miles = this.getRoundNum(maxMiles);\n this.updateScale(this.iScale, miles + ' mi', miles / maxMiles);\n } else {\n feet = this.getRoundNum(maxFeet);\n this.updateScale(this.iScale, feet + ' ft', feet / maxFeet);\n }\n }\n private updateScale(scale: HTMLElement, text: string, ratio: number) {\n const { maxWidth } = this.controlOption;\n scale.style.width = Math.round(maxWidth * ratio) + 'px';\n scale.innerHTML = text;\n }\n private getRoundNum(num: number) {\n const pow10 = Math.pow(10, (Math.floor(num) + '').length - 1);\n let d = num / pow10;\n\n d = d >= 10 ? 10 : d >= 5 ? 5 : d >= 3 ? 3 : d >= 2 ? 2 : 1;\n\n return pow10 * d;\n }\n private addScales(className: string, container: HTMLElement) {\n const { metric, imperial } = this.controlOption;\n if (metric) {\n this.mScale = DOM.create('div', className, container);\n }\n if (imperial) {\n this.iScale = DOM.create('div', className, container);\n }\n }\n}\n"],"file":"scale.js"}
|
package/es/control/zoom.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/control/zoom.ts"],"names":["bindAll","DOM","Control","PositionType","Zoom","cfg","position","TOPLEFT","zoomInText","zoomInTitle","zoomOutText","zoomOutTitle","name","zoomName","container","create","zoomInButton","createButton","controlOption","zoomIn","zoomOutButton","zoomOut","mapsService","on","updateDisabled","off","disabled","getZoom","getMaxZoom","getMinZoom","html","tile","className","fn","link","innerHTML","title","href","addEventListener","removeClass","addClass"],"mappings":"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","sourcesContent":["import { bindAll, DOM } from '@antv/l7-utils';\nimport { IZoomControlOption } from '../interface';\nimport Control, { PositionType } from './BaseControl';\n\nexport default class Zoom extends Control {\n private disabled: boolean;\n private zoomInButton: HTMLElement;\n private zoomOutButton: HTMLElement;\n\n constructor(cfg?: Partial<IZoomControlOption>) {\n super(cfg);\n bindAll(['updateDisabled', 'zoomIn', 'zoomOut'], this);\n }\n public getDefault() {\n return {\n position: PositionType.TOPLEFT,\n zoomInText: '+',\n zoomInTitle: 'Zoom in',\n zoomOutText: '−',\n zoomOutTitle: 'Zoom out',\n name: 'zoom',\n };\n }\n\n public onAdd(): HTMLElement {\n const zoomName = 'l7-control-zoom';\n const container = DOM.create('div', zoomName + ' l7-bar');\n\n this.zoomInButton = this.createButton(\n this.controlOption.zoomInText,\n this.controlOption.zoomInTitle,\n zoomName + '-in',\n container,\n this.zoomIn,\n );\n this.zoomOutButton = this.createButton(\n this.controlOption.zoomOutText,\n this.controlOption.zoomOutTitle,\n zoomName + '-out',\n container,\n this.zoomOut,\n );\n this.mapsService.on('zoomend', this.updateDisabled);\n this.mapsService.on('zoomchange', this.updateDisabled);\n this.updateDisabled();\n return container;\n }\n\n public onRemove() {\n this.mapsService.off('zoomend', this.updateDisabled);\n this.mapsService.off('zoomchange', this.updateDisabled);\n }\n\n public disable() {\n this.disabled = true;\n this.updateDisabled();\n return this;\n }\n\n public enable() {\n this.disabled = false;\n this.updateDisabled();\n return this;\n }\n\n private zoomIn() {\n if (\n !this.disabled &&\n this.mapsService.getZoom() < this.mapsService.getMaxZoom()\n ) {\n this.mapsService.zoomIn();\n }\n }\n private zoomOut() {\n if (\n !this.disabled &&\n this.mapsService.getZoom() > this.mapsService.getMinZoom()\n ) {\n this.mapsService.zoomOut();\n }\n }\n private createButton(\n html: string,\n tile: string,\n className: string,\n container: HTMLElement,\n fn: (...arg: any[]) => any,\n ) {\n const link = DOM.create('a', className, container) as HTMLLinkElement;\n link.innerHTML = html;\n link.title = tile;\n link.href = 'javascript:void(0)';\n link.addEventListener('click', fn);\n return link;\n }\n private updateDisabled() {\n const mapsService = this.mapsService;\n const className = 'l7-disabled';\n DOM.removeClass(this.zoomInButton, className);\n DOM.removeClass(this.zoomOutButton, className);\n if (this.disabled || mapsService.getZoom() <= mapsService.getMinZoom()) {\n DOM.addClass(this.zoomOutButton, className);\n }\n if (this.disabled || mapsService.getZoom() >= mapsService.getMaxZoom()) {\n DOM.addClass(this.zoomInButton, className);\n }\n }\n}\n"],"file":"zoom.js"}
|
package/es/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["Control","Layers","Logo","Scale","Zoom","Marker","MarkerLayer","Popup"],"mappings":"AAAA,OAAOA,OAAP,MAAoB,uBAApB;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AACA,OAAOC,IAAP,MAAiB,gBAAjB;AACA,OAAOC,KAAP,MAAkB,iBAAlB;AACA,OAAOC,IAAP,MAAiB,gBAAjB;AACA,OAAOC,MAAP,MAAmB,UAAnB;AACA,OAAOC,WAAP,MAAwB,gBAAxB;AACA,OAAOC,KAAP,MAAkB,SAAlB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,SAASP,OAAT,EAAkBE,IAAlB,EAAwBC,KAAxB,EAA+BC,IAA/B,EAAqCH,MAArC,EAA6CI,MAA7C,EAAqDE,KAArD,EAA4DD,WAA5D;AAEA,cAAc,aAAd","sourcesContent":["import Control from './control/BaseControl';\nimport Layers from './control/layer';\nimport Logo from './control/logo';\nimport Scale from './control/scale';\nimport Zoom from './control/zoom';\nimport Marker from './marker';\nimport MarkerLayer from './marker-layer';\nimport Popup from './popup';\n\n// 引入样式\n// TODO: 使用 Less 或者 Sass,每个组件单独引用自身样式\nimport './css/l7.css';\n\nexport { Control, Logo, Scale, Zoom, Layers, Marker, Popup, MarkerLayer };\n\nexport * from './interface';\n"],"file":"index.js"}
|
package/es/interface.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"interface.js"}
|
package/es/marker-layer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/marker-layer.ts"],"names":["TYPES","bindAll","boundsContains","DOM","padBounds","Satistics","EventEmitter","Supercluster","Marker","MarkerLayer","option","markerLayerOption","getDefault","zoom","clusterOption","cluster","radius","maxZoom","minZoom","style","className","scene","mapsService","get","IMapService","initCluster","update","on","addMarkers","marker","addPoint","markers","length","getZoom","bbox","getBounds","Math","floor","getClusterMarker","push","indexOf","markerIndex","splice","map","m","getElement","opacity","clusterMarkers","getMarkers","forEach","addTo","remove","clusterMarker","off","clear","removeAllListeners","id","getLnglat","lng","lat","feature","geometry","type","coordinates","properties","getExtData","marker_id","points","clusterIndex","load","viewBounds","viewBBox","concat","clusterPoint","getClusters","field","method","cluster_id","clusterData","getLeaves","columnData","item","data","column","getColumn","stat","getSatByColumn","fieldName","toFixed","clusterId","limit","Infinity","offset","element","generateElement","bind","setLnglat","abs","el","create","label","span","point_count","text","textContent"],"mappings":"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","sourcesContent":["import { IMapService, IMarker, TYPES } from '@antv/l7-core';\nimport {\n bindAll,\n boundsContains,\n DOM,\n IBounds,\n padBounds,\n Satistics,\n} from '@antv/l7-utils';\nimport { EventEmitter } from 'eventemitter3';\nimport { Container } from 'inversify';\nimport { merge } from 'lodash';\n// @ts-ignore\n// tslint:disable-next-line:no-submodule-imports\nimport Supercluster from 'supercluster/dist/supercluster';\nimport { IMarkerLayerOption, IMarkerStyleOption } from './interface';\nimport Marker from './marker';\n\ninterface IPointFeature {\n geometry: {\n type: 'Point';\n coordinates: [number, number];\n };\n properties: any;\n}\n\nexport default class MarkerLayer extends EventEmitter {\n private markers: IMarker[] = [];\n private markerLayerOption: IMarkerLayerOption;\n private clusterIndex: Supercluster;\n private points: IPointFeature[] = [];\n private clusterMarkers: IMarker[] = [];\n private mapsService: IMapService<unknown>;\n private scene: Container;\n private zoom: number;\n private bbox: IBounds;\n\n constructor(option?: Partial<IMarkerLayerOption>) {\n super();\n this.markerLayerOption = merge(this.getDefault(), option);\n bindAll(['update'], this);\n this.zoom = this.markerLayerOption.clusterOption?.zoom || -99;\n }\n public getDefault() {\n return {\n cluster: false,\n clusterOption: {\n radius: 80,\n maxZoom: 20,\n minZoom: 0,\n zoom: -99,\n style: {},\n className: '',\n },\n };\n }\n public addTo(scene: Container) {\n // this.remove();\n this.scene = scene;\n this.mapsService = scene.get<IMapService>(TYPES.IMapService);\n if (this.markerLayerOption.cluster) {\n this.initCluster();\n this.update();\n // 地图视野变化时,重新计算视野内的聚合点。\n this.mapsService.on('camerachange', this.update); // amap1.x 更新事件\n this.mapsService.on('viewchange', this.update); // amap2.0 更新事件\n }\n this.addMarkers();\n return this;\n }\n public addMarker(marker: IMarker) {\n const cluster = this.markerLayerOption.cluster;\n if (cluster) {\n this.addPoint(marker, this.markers.length);\n if (this.mapsService) {\n // 在新增 marker 的时候需要更新聚合信息(哪怕此时的 zoom 没有发生变化)\n const zoom = this.mapsService.getZoom();\n const bbox = this.mapsService.getBounds();\n this.bbox = padBounds(bbox, 0.5);\n this.zoom = Math.floor(zoom);\n this.getClusterMarker(this.bbox, this.zoom);\n }\n }\n this.markers.push(marker);\n }\n\n public removeMarker(marker: IMarker) {\n this.markers.indexOf(marker);\n const markerIndex = this.markers.indexOf(marker);\n if (markerIndex > -1) {\n this.markers.splice(markerIndex, 1);\n }\n }\n\n /**\n * 隐藏 marker 在每个 marker 上单独修改属性而不是在 markerContainer 上修改(在 markerContainer 修改会有用户在场景加载完之前调用失败的问题)\n */\n public hide() {\n this.markers.map((m) => {\n m.getElement().style.opacity = '0';\n });\n\n this.clusterMarkers.map((m) => {\n m.getElement().style.opacity = '0';\n });\n }\n\n /**\n * 显示 marker\n */\n public show() {\n this.markers.map((m) => {\n m.getElement().style.opacity = '1';\n });\n\n this.clusterMarkers.map((m) => {\n m.getElement().style.opacity = '1';\n });\n }\n\n public getMarkers() {\n const cluster = this.markerLayerOption.cluster;\n return cluster ? this.clusterMarkers : this.markers;\n }\n\n public addMarkers() {\n this.getMarkers().forEach((marker: IMarker) => {\n marker.addTo(this.scene);\n });\n }\n public clear() {\n this.markers.forEach((marker: IMarker) => {\n marker.remove();\n });\n this.clusterMarkers.forEach((clusterMarker: IMarker) => {\n clusterMarker.remove();\n });\n this.mapsService.off('camerachange', this.update);\n this.markers = [];\n this.clusterMarkers = [];\n }\n\n public destroy() {\n this.clear();\n this.removeAllListeners();\n }\n\n private addPoint(marker: IMarker, id: number) {\n const { lng, lat } = marker.getLnglat();\n const feature: IPointFeature = {\n geometry: {\n type: 'Point',\n coordinates: [lng, lat],\n },\n properties: {\n ...marker.getExtData(),\n marker_id: id,\n },\n };\n this.points.push(feature);\n if (this.clusterIndex) {\n // 在新增点的时候需要更新 cluster 的数据\n this.clusterIndex.load(this.points);\n }\n }\n\n private initCluster() {\n if (!this.markerLayerOption.cluster) {\n return;\n }\n const { radius, minZoom = 0, maxZoom } = this.markerLayerOption\n .clusterOption as IMarkerStyleOption;\n this.clusterIndex = new Supercluster({\n radius,\n minZoom,\n maxZoom,\n });\n // @ts-ignore\n this.clusterIndex.load(this.points);\n }\n\n private getClusterMarker(viewBounds: IBounds, zoom: number) {\n const viewBBox = viewBounds[0].concat(viewBounds[1]);\n const clusterPoint = this.clusterIndex.getClusters(viewBBox, zoom);\n this.clusterMarkers.forEach((marker: IMarker) => {\n marker.remove();\n });\n this.clusterMarkers = [];\n clusterPoint.forEach((feature: any) => {\n const { field, method } = this.markerLayerOption.clusterOption;\n // 处理聚合数据\n if (feature.properties && feature.properties?.cluster_id) {\n const clusterData = this.getLeaves(feature.properties?.cluster_id);\n feature.properties.clusterData = clusterData;\n if (field && method) {\n const columnData = clusterData?.map((item: any) => {\n const data = {\n [field]: item.properties[field],\n };\n return data;\n });\n const column = Satistics.getColumn(columnData as any, field);\n const stat = Satistics.getSatByColumn(method, column);\n const fieldName = 'point_' + method;\n feature.properties[fieldName] = stat.toFixed(2);\n }\n }\n const marker = this.clusterMarker(feature);\n this.clusterMarkers.push(marker);\n marker.addTo(this.scene);\n });\n }\n private getLeaves(\n clusterId: number,\n limit: number = Infinity,\n offset: number = 0,\n ) {\n if (!clusterId) {\n return null;\n }\n return this.clusterIndex.getLeaves(clusterId, limit, offset);\n }\n private clusterMarker(feature: any) {\n const clusterOption = this.markerLayerOption.clusterOption;\n\n const {\n element = this.generateElement.bind(this),\n } = clusterOption as IMarkerStyleOption;\n const marker = new Marker({\n element: element(feature),\n }).setLnglat({\n lng: feature.geometry.coordinates[0],\n lat: feature.geometry.coordinates[1],\n });\n return marker;\n }\n private normalMarker(feature: any) {\n const marker_id = feature.properties.marker_id;\n return this.markers[marker_id];\n }\n\n private update() {\n if (!this.mapsService) {\n return;\n }\n const zoom = this.mapsService.getZoom();\n const bbox = this.mapsService.getBounds();\n if (\n !this.bbox ||\n Math.abs(zoom - this.zoom) >= 1 ||\n !boundsContains(this.bbox, bbox)\n ) {\n this.bbox = padBounds(bbox, 0.5);\n this.zoom = Math.floor(zoom);\n this.getClusterMarker(this.bbox, this.zoom);\n }\n }\n\n private generateElement(feature: any) {\n const el = DOM.create('div', 'l7-marker-cluster');\n const label = DOM.create('div', '', el);\n const span = DOM.create('span', '', label);\n const { field, method } = this.markerLayerOption.clusterOption;\n feature.properties.point_count = feature.properties.point_count || 1;\n\n const text =\n field && method\n ? feature.properties['point_' + method] || feature.properties[field]\n : feature.properties.point_count;\n span.textContent = text;\n return el;\n }\n}\n"],"file":"marker-layer.js"}
|
package/es/marker.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/marker.ts"],"names":["TYPES","anchorTranslate","anchorType","applyAnchorClass","bindAll","DOM","EventEmitter","Marker","option","e","emit","type","target","data","markerOption","extData","lngLat","getDefault","init","element","undefined","anchor","BOTTOM","offsets","color","draggable","scene","mapsService","get","IMapService","sceneSerive","ISceneService","getMarkerContainer","appendChild","registerMarkerEvent","on","update","added","off","onMapClick","addDragHandler","onUp","unRegisterMarkerEvent","removeAllListeners","remove","popup","Array","isArray","lng","lat","setLnglat","el","once","setElement","openPopup","isOpen","addTo","closePopup","Error","updatePosition","setTransform","togglePopup","bounds","getBounds","pos","lngLatToContainer","style","display","whiteSpace","container","getContainer","containerWidth","containerHeight","scrollWidth","scrollHeight","Math","abs","x","newPos","y","left","top","defaultMarker","create","svg","document","createElementNS","setAttributeNS","path","addClass","Object","keys","forEach","key","value","addEventListener","eventHandle","getElement","removeEventListener"],"mappings":"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","sourcesContent":["import {\n ILngLat,\n IMapService,\n IMarkerOption,\n IPoint,\n IPopup,\n ISceneService,\n TYPES,\n} from '@antv/l7-core';\nimport {\n anchorTranslate,\n anchorType,\n applyAnchorClass,\n bindAll,\n DOM,\n} from '@antv/l7-utils';\nimport { EventEmitter } from 'eventemitter3';\nimport { Container } from 'inversify';\n\n// marker 支持 dragger 未完成\nexport default class Marker extends EventEmitter {\n private markerOption: IMarkerOption;\n private defaultMarker: boolean;\n private popup: IPopup;\n private mapsService: IMapService<unknown>;\n private sceneSerive: ISceneService;\n private lngLat: ILngLat;\n private scene: Container;\n private added: boolean = false;\n constructor(option?: Partial<IMarkerOption>) {\n super();\n this.markerOption = {\n ...this.getDefault(),\n ...option,\n };\n bindAll(['update', 'onMove', 'onUp', 'addDragHandler', 'onMapClick'], this);\n this.init();\n }\n\n public getDefault() {\n return {\n element: undefined, // DOM element\n anchor: anchorType.BOTTOM,\n offsets: [0, 0],\n color: '#5B8FF9',\n draggable: false,\n };\n }\n\n public addTo(scene: Container) {\n // this.remove();\n this.scene = scene;\n this.mapsService = scene.get<IMapService>(TYPES.IMapService);\n this.sceneSerive = scene.get<ISceneService>(TYPES.ISceneService);\n const { element, draggable } = this.markerOption;\n // this.sceneSerive.getSceneContainer().appendChild(element as HTMLElement);\n this.mapsService.getMarkerContainer().appendChild(element as HTMLElement);\n this.registerMarkerEvent(element as HTMLElement);\n this.mapsService.on('camerachange', this.update); // 注册高德1.x 的地图事件监听\n this.mapsService.on('viewchange', this.update); // 注册高德2.0 的地图事件监听\n this.update();\n this.added = true;\n this.emit('added');\n return this;\n }\n\n public remove() {\n if (this.mapsService) {\n this.mapsService.off('click', this.onMapClick);\n this.mapsService.off('move', this.update);\n this.mapsService.off('moveend', this.update);\n this.mapsService.off('mousedown', this.addDragHandler);\n this.mapsService.off('touchstart', this.addDragHandler);\n this.mapsService.off('mouseup', this.onUp);\n this.mapsService.off('touchend', this.onUp);\n }\n this.unRegisterMarkerEvent();\n this.removeAllListeners();\n const { element } = this.markerOption;\n if (element) {\n DOM.remove(element);\n }\n if (this.popup) {\n this.popup.remove();\n }\n return this;\n }\n\n public setLnglat(lngLat: ILngLat | IPoint) {\n this.lngLat = lngLat as ILngLat;\n if (Array.isArray(lngLat)) {\n this.lngLat = {\n lng: lngLat[0],\n lat: lngLat[1],\n };\n }\n\n if (this.popup) {\n this.popup.setLnglat(this.lngLat);\n }\n this.update();\n return this;\n }\n\n public getLnglat(): ILngLat {\n return this.lngLat;\n }\n\n public getElement(): HTMLElement {\n return this.markerOption.element as HTMLElement;\n }\n\n public setElement(el: HTMLElement): this {\n if (!this.added) {\n this.once('added', () => {\n this.setElement(el);\n });\n return this;\n }\n const { element } = this.markerOption;\n if (element) {\n DOM.remove(element);\n }\n this.markerOption.element = el;\n this.init();\n this.mapsService.getMarkerContainer().appendChild(el as HTMLElement);\n this.registerMarkerEvent(el as HTMLElement);\n this.update();\n return this;\n }\n\n public openPopup(): this {\n if (!this.added) {\n this.once('added', () => {\n this.openPopup();\n });\n return this;\n }\n const popup = this.popup;\n if (!popup) {\n return this;\n }\n if (!popup.isOpen()) {\n popup.addTo(this.scene);\n }\n return this;\n }\n\n public closePopup(): this {\n if (!this.added) {\n this.once('added', () => {\n this.closePopup();\n });\n }\n const popup = this.popup;\n if (popup) {\n popup.remove();\n }\n return this;\n }\n\n public setPopup(popup: IPopup) {\n this.popup = popup;\n if (this.lngLat) {\n this.popup.setLnglat(this.lngLat);\n }\n return this;\n }\n\n public togglePopup() {\n const popup = this.popup;\n if (!popup) {\n return this;\n } else if (popup.isOpen()) {\n popup.remove();\n } else {\n popup.addTo(this.scene);\n }\n return this;\n }\n\n public getPopup() {\n return this.popup;\n }\n\n public getOffset(): number[] {\n return this.markerOption.offsets;\n }\n\n public setDraggable(draggable: boolean) {\n throw new Error('Method not implemented.');\n }\n\n public isDraggable() {\n return this.markerOption.draggable;\n }\n\n public getExtData() {\n return this.markerOption.extData;\n }\n\n public setExtData(data: any) {\n this.markerOption.extData = data;\n }\n\n private update() {\n if (!this.mapsService) {\n return;\n }\n const { element, anchor } = this.markerOption;\n this.updatePosition();\n DOM.setTransform(element as HTMLElement, `${anchorTranslate[anchor]}`);\n }\n\n private onMapClick(e: MouseEvent) {\n const { element } = this.markerOption;\n if (this.popup && element) {\n this.togglePopup();\n }\n }\n\n private updatePosition() {\n if (!this.mapsService) {\n return;\n }\n const { element, offsets } = this.markerOption;\n const { lng, lat } = this.lngLat;\n const bounds = this.mapsService.getBounds();\n const pos = this.mapsService.lngLatToContainer([lng, lat]);\n\n if (element) {\n element.style.display = 'block';\n element.style.whiteSpace = 'nowrap';\n const container = this.mapsService.getContainer();\n let containerWidth = 0;\n let containerHeight = 0;\n if (container) {\n containerWidth = container.scrollWidth;\n containerHeight = container.scrollHeight;\n }\n // 当前可视区域包含跨日界线\n if (Math.abs(bounds[0][0]) > 180 || Math.abs(bounds[1][0]) > 180) {\n if (pos.x > containerWidth) {\n // 日界线右侧点左移\n const newPos = this.mapsService.lngLatToContainer([lng - 360, lat]);\n pos.x = newPos.x;\n }\n if (pos.x < 0) {\n // 日界线左侧点右移\n const newPos = this.mapsService.lngLatToContainer([lng + 360, lat]);\n pos.x = newPos.x;\n }\n }\n // 不在当前可视区域内隐藏点\n if (\n pos.x > containerWidth ||\n pos.x < 0 ||\n pos.y > containerHeight ||\n pos.y < 0\n ) {\n element.style.display = 'none';\n }\n element.style.left = pos.x + offsets[0] + 'px';\n element.style.top = pos.y - offsets[1] + 'px';\n }\n }\n\n private init() {\n let { element } = this.markerOption;\n const { color, anchor } = this.markerOption;\n if (!element) {\n this.defaultMarker = true;\n element = DOM.create('div') as HTMLDivElement;\n this.markerOption.element = element;\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttributeNS(null, 'display', 'block');\n svg.setAttributeNS(null, 'height', '48px');\n svg.setAttributeNS(null, 'width', '48px');\n svg.setAttributeNS(null, 'viewBox', '0 0 1024 1024');\n\n const path = document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'path',\n );\n path.setAttributeNS(\n null,\n 'd',\n 'M512 490.666667C453.12 490.666667 405.333333 442.88 405.333333 384 405.333333 325.12 453.12 277.333333 512 277.333333 570.88 277.333333 618.666667 325.12 618.666667 384 618.666667 442.88 570.88 490.666667 512 490.666667M512 85.333333C346.88 85.333333 213.333333 218.88 213.333333 384 213.333333 608 512 938.666667 512 938.666667 512 938.666667 810.666667 608 810.666667 384 810.666667 218.88 677.12 85.333333 512 85.333333Z',\n );\n path.setAttributeNS(null, 'fill', color);\n svg.appendChild(path);\n element.appendChild(svg);\n }\n DOM.addClass(element, 'l7-marker');\n Object.keys(this.markerOption.style || {}).forEach(\n // @ts-ignore\n (key: keyof CSSStyleDeclaration) => {\n const value =\n this.markerOption?.style && (this.markerOption?.style[key] as string);\n if (element) {\n // @ts-ignore\n (element.style as CSSStyleDeclaration)[key] = value;\n }\n },\n );\n\n element.addEventListener('click', (e: MouseEvent) => {\n this.onMapClick(e);\n });\n element.addEventListener('click', this.eventHandle);\n applyAnchorClass(element, anchor, 'marker');\n }\n private registerMarkerEvent(element: HTMLElement) {\n element.addEventListener('mousemove', this.eventHandle);\n element.addEventListener('click', this.eventHandle);\n element.addEventListener('mousedown', this.eventHandle);\n element.addEventListener('mouseup', this.eventHandle);\n element.addEventListener('dblclick', this.eventHandle);\n element.addEventListener('contextmenu', this.eventHandle);\n element.addEventListener('mouseover', this.eventHandle);\n element.addEventListener('mouseout', this.eventHandle);\n }\n private unRegisterMarkerEvent() {\n const element = this.getElement();\n element.removeEventListener('mousemove', this.eventHandle);\n element.removeEventListener('click', this.eventHandle);\n element.removeEventListener('mousedown', this.eventHandle);\n element.removeEventListener('mouseup', this.eventHandle);\n element.removeEventListener('dblclick', this.eventHandle);\n element.removeEventListener('contextmenu', this.eventHandle);\n element.removeEventListener('mouseover', this.eventHandle);\n element.removeEventListener('mouseout', this.eventHandle);\n }\n\n private eventHandle = (e: MouseEvent) => {\n this.emit(e.type, {\n target: e,\n data: this.markerOption.extData,\n lngLat: this.lngLat,\n });\n };\n private addDragHandler(e: MouseEvent) {\n throw new Error('Method not implemented.');\n }\n\n private onUp(e: MouseEvent) {\n throw new Error('Method not implemented.');\n }\n}\n"],"file":"marker.js"}
|
package/es/popup.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/popup.ts"],"names":["TYPES","anchorTranslate","anchorType","applyAnchorClass","bindAll","DOM","EventEmitter","Popup","cfg","popupOption","getdefault","scene","mapsService","get","IMapService","sceneSerive","ISceneService","on","update","closeOnClick","timeoutInstance","setTimeout","onClickClose","emit","remove","addTo","html","frag","window","document","createDocumentFragment","temp","createElement","child","innerHTML","firstChild","appendChild","setDOMContent","lngLat","Array","isArray","lng","lat","text","createTextNode","maxWidth","htmlNode","createContent","content","removeDom","container","off","clearTimeout","create","closeButton","closeButtonOffsets","style","right","top","setAttribute","addEventListener","tagName","className","el","undefined","node","parentNode","removeChild","offsets","anchor","BOTTOM","stopPropagation","e","hasPosition","popupContainer","getMarkerContainer","creatDom","tip","split","forEach","name","classList","add","type","whiteSpace","updatePosition","setTransform","pos","lngLatToContainer","left","x","y"],"mappings":"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","sourcesContent":["import {\n ILngLat,\n IMapService,\n IPoint,\n IPopup,\n IPopupOption,\n ISceneService,\n TYPES,\n} from '@antv/l7-core';\nimport {\n anchorTranslate,\n anchorType,\n applyAnchorClass,\n bindAll,\n DOM,\n} from '@antv/l7-utils';\nimport { EventEmitter } from 'eventemitter3';\nimport { Container } from 'inversify';\n\n/** colse event */\n\nexport default class Popup extends EventEmitter implements IPopup {\n private popupOption: IPopupOption;\n private mapsService: IMapService<unknown>;\n private sceneSerive: ISceneService;\n private lngLat: ILngLat;\n private content: HTMLElement;\n private closeButton: HTMLElement;\n private timeoutInstance: any;\n private container: HTMLElement;\n private tip: HTMLElement;\n private scene: Container;\n\n constructor(cfg?: Partial<IPopupOption>) {\n super();\n this.popupOption = {\n ...this.getdefault(),\n ...cfg,\n };\n bindAll(['update', 'onClickClose', 'remove'], this);\n }\n\n public addTo(scene: Container) {\n this.mapsService = scene.get<IMapService>(TYPES.IMapService);\n this.sceneSerive = scene.get<ISceneService>(TYPES.ISceneService);\n this.mapsService.on('camerachange', this.update);\n this.mapsService.on('viewchange', this.update);\n this.scene = scene;\n this.update();\n if (this.popupOption.closeOnClick) {\n this.timeoutInstance = setTimeout(() => {\n this.mapsService.on('click', this.onClickClose);\n }, 30);\n }\n this.emit('open');\n return this;\n }\n\n public close(): void {\n this.remove();\n }\n\n public open(): void {\n this.addTo(this.scene);\n }\n\n public setHTML(html: string) {\n const frag = window.document.createDocumentFragment();\n const temp = window.document.createElement('body');\n let child: ChildNode | null;\n temp.innerHTML = html;\n while (true) {\n child = temp.firstChild;\n if (!child) {\n break;\n }\n frag.appendChild(child);\n }\n\n return this.setDOMContent(frag);\n }\n\n public setLnglat(lngLat: ILngLat | number[]): this {\n this.lngLat = lngLat as ILngLat;\n if (Array.isArray(lngLat)) {\n this.lngLat = {\n lng: lngLat[0],\n lat: lngLat[1],\n };\n }\n if (this.mapsService) {\n this.mapsService.on('camerachange', this.update);\n this.mapsService.on('viewchange', this.update);\n }\n this.update();\n return this;\n }\n public getLnglat(): ILngLat {\n return this.lngLat;\n }\n public setText(text: string) {\n return this.setDOMContent(window.document.createTextNode(text));\n }\n\n public setMaxWidth(maxWidth: string): this {\n this.popupOption.maxWidth = maxWidth;\n this.update();\n return this;\n }\n\n public setDOMContent(htmlNode: ChildNode | DocumentFragment) {\n this.createContent();\n this.content.appendChild(htmlNode);\n this.update();\n return this;\n }\n\n // 移除popup\n public remove() {\n if (this.content) {\n this.removeDom(this.content);\n }\n\n if (this.container) {\n this.removeDom(this.container);\n // @ts-ignore\n delete this.container;\n }\n if (this.mapsService) {\n // TODO: mapbox AMap 事件同步\n this.mapsService.off('camerachange', this.update);\n this.mapsService.off('viewchange', this.update);\n this.mapsService.off('click', this.onClickClose);\n // @ts-ignore\n delete this.mapsService;\n }\n clearTimeout(this.timeoutInstance);\n this.emit('close');\n return this;\n }\n public isOpen() {\n return !!this.mapsService;\n }\n\n private createContent() {\n if (this.content) {\n DOM.remove(this.content);\n }\n this.content = DOM.create('div', 'l7-popup-content', this.container);\n if (this.popupOption.closeButton) {\n this.closeButton = DOM.create(\n 'button',\n 'l7-popup-close-button',\n this.content,\n );\n\n if (this.popupOption.closeButtonOffsets) {\n // 关闭按钮的偏移\n this.closeButton.style.right =\n this.popupOption.closeButtonOffsets[0] + 'px';\n this.closeButton.style.top =\n this.popupOption.closeButtonOffsets[1] + 'px';\n }\n\n // this.closeButton.type = 'button';\n this.closeButton.setAttribute('aria-label', 'Close popup');\n this.closeButton.innerHTML = '×';\n this.closeButton.addEventListener('click', this.onClickClose);\n }\n }\n\n private creatDom(tagName: string, className: string, container: HTMLElement) {\n const el = window.document.createElement(tagName);\n if (className !== undefined) {\n el.className = className;\n }\n if (container) {\n container.appendChild(el);\n }\n return el;\n }\n\n private removeDom(node: ChildNode) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n\n private getdefault() {\n return {\n closeButton: true,\n closeOnClick: true,\n maxWidth: '240px',\n offsets: [0, 0],\n anchor: anchorType.BOTTOM,\n className: '',\n stopPropagation: true,\n };\n }\n\n private onClickClose(e: Event) {\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n this.remove();\n }\n\n private update() {\n const hasPosition = this.lngLat;\n const { className, maxWidth, anchor } = this.popupOption;\n if (!this.mapsService || !hasPosition || !this.content) {\n return;\n }\n const popupContainer = this.mapsService.getMarkerContainer();\n if (!this.container && popupContainer) {\n this.container = this.creatDom(\n 'div',\n 'l7-popup',\n popupContainer as HTMLElement,\n );\n\n this.tip = this.creatDom('div', 'l7-popup-tip', this.container);\n this.container.appendChild(this.content);\n if (className) {\n className\n .split(' ')\n .forEach((name) => this.container.classList.add(name));\n }\n\n // 高德地图需要阻止事件冒泡 // 测试mapbox 地图不需要添加\n const { stopPropagation } = this.popupOption;\n if (stopPropagation) {\n ['mousemove', 'mousedown', 'mouseup', 'click', 'dblclick'].forEach(\n (type) => {\n this.container.addEventListener(type, (e) => {\n e.stopPropagation();\n });\n },\n );\n }\n\n this.container.style.whiteSpace = 'nowrap';\n }\n if (maxWidth && this.container.style.maxWidth !== maxWidth) {\n this.container.style.maxWidth = maxWidth;\n }\n\n this.updatePosition();\n DOM.setTransform(this.container, `${anchorTranslate[anchor]}`);\n applyAnchorClass(this.container, anchor, 'popup');\n }\n\n private updatePosition() {\n if (!this.mapsService) {\n return;\n }\n const { lng, lat } = this.lngLat;\n const { offsets } = this.popupOption;\n const pos = this.mapsService.lngLatToContainer([lng, lat]);\n this.container.style.left = pos.x + offsets[0] + 'px';\n this.container.style.top = pos.y - offsets[1] + 'px';\n }\n}\n"],"file":"popup.js"}
|
package/es/utils/anchor.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/anchor.ts"],"names":["anchorType","anchorTranslate","center","top","bottom","left","right","applyAnchorClass","element","anchor","prefix","classList","key","hasOwnProperty","remove","add"],"mappings":"AAAA,WAAYA,UAAZ;;WAAYA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;GAAAA,U,KAAAA,U;;AAWZ,OAAO,IAAMC,eAAe,GAAG;AAC7BC,EAAAA,MAAM,EAAE,sBADqB;AAE7BC,EAAAA,GAAG,EAAE,mBAFwB;AAG7B,cAAY,gBAHiB;AAI7B,eAAa,oBAJgB;AAK7BC,EAAAA,MAAM,EAAE,uBALqB;AAM7B,iBAAe,oBANc;AAO7B,kBAAgB,wBAPa;AAQ7BC,EAAAA,IAAI,EAAE,mBARuB;AAS7BC,EAAAA,KAAK,EAAE;AATsB,CAAxB;AAYP,OAAO,SAASC,gBAAT,CACLC,OADK,EAELC,MAFK,EAGLC,MAHK,EAIL;AACA,MAAMC,SAAS,GAAGH,OAAO,CAACG,SAA1B;;AACA,OAAK,IAAMC,GAAX,IAAkBX,eAAlB,EAAmC;AACjC,QAAIA,eAAe,CAACY,cAAhB,CAA+BD,GAA/B,CAAJ,EAAyC;AACvCD,MAAAA,SAAS,CAACG,MAAV,cAAuBJ,MAAvB,qBAAwCE,GAAxC;AACD;AACF;;AACDD,EAAAA,SAAS,CAACI,GAAV,cAAoBL,MAApB,qBAAqCD,MAArC;AACD","sourcesContent":["export enum anchorType {\n 'CENTER' = 'center',\n 'TOP' = 'top',\n 'TOP-LEFT' = 'top-left',\n 'TOP-RIGHT' = 'top-right',\n 'BOTTOM' = 'bottom',\n 'BOTTOM-LEFT' = 'bottom-left',\n 'LEFT' = 'left',\n 'RIGHT' = 'right',\n}\n\nexport const anchorTranslate = {\n center: 'translate(-50%,-50%)',\n top: 'translate(-50%,0)',\n 'top-left': 'translate(0,0)',\n 'top-right': 'translate(-100%,0)',\n bottom: 'translate(-50%,-100%)',\n 'bottom-left': 'translate(0,-100%)',\n 'bottom-right': 'translate(-100%,-100%)',\n left: 'translate(0,-50%)',\n right: 'translate(-100%,-50%)',\n};\n\nexport function applyAnchorClass(\n element: HTMLElement,\n anchor: string,\n prefix: string,\n) {\n const classList = element.classList;\n for (const key in anchorTranslate) {\n if (anchorTranslate.hasOwnProperty(key)) {\n classList.remove(`l7-${prefix}-anchor-${key}`);\n }\n }\n classList.add(`l7-${prefix}-anchor-${anchor}`);\n}\n"],"file":"anchor.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/control/BaseControl.ts"],"names":["controlId","Control","cfg","controlOption","getDefault","position","PositionType","TOPRIGHT","name","BOTTOMRIGHT","controlService","removeControl","addControl","sceneContainer","mapsService","get","TYPES","IMapService","renderService","IRendererService","layerService","ILayerService","IControlService","isShow","container","onAdd","pos","corner","controlCorners","DOM","addClass","indexOf","insertBefore","firstChild","appendChild","Error","removeClass","remove","onRemove","e","screenX","screenY","getContainer","focus","EventEmitter"],"mappings":"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","sourcesContent":["import {\n IControlOption,\n IControlService,\n ILayerService,\n IMapService,\n IRendererService,\n PositionType,\n TYPES,\n} from '@antv/l7-core';\nimport { DOM } from '@antv/l7-utils';\nimport { EventEmitter } from 'eventemitter3';\nimport { Container } from 'inversify';\n\nexport { PositionType } from '@antv/l7-core';\n\nlet controlId = 0;\nexport default class Control extends EventEmitter {\n public controlOption: IControlOption;\n protected container: HTMLElement;\n protected sceneContainer: Container;\n protected mapsService: IMapService;\n protected renderService: IRendererService;\n protected layerService: ILayerService;\n protected controlService: IControlService;\n\n private isShow: boolean;\n\n constructor(cfg?: Partial<IControlOption>) {\n super();\n this.controlOption = {\n ...this.getDefault(),\n ...(cfg || {}),\n };\n }\n\n public getDefault() {\n return {\n position: PositionType.TOPRIGHT,\n name: `${controlId++}`,\n };\n }\n\n public setPosition(position: PositionType = PositionType.BOTTOMRIGHT) {\n // 考虑组件的自动布局,需要销毁重建\n const controlService = this.controlService;\n if (controlService) {\n controlService.removeControl(this);\n }\n this.controlOption.position = position;\n if (controlService) {\n controlService.addControl(this, this.sceneContainer);\n }\n return this;\n }\n public addTo(sceneContainer: Container) {\n this.mapsService = sceneContainer.get<IMapService>(TYPES.IMapService);\n this.renderService = sceneContainer.get<IRendererService>(\n TYPES.IRendererService,\n );\n this.layerService = sceneContainer.get<ILayerService>(TYPES.ILayerService);\n this.controlService = sceneContainer.get<IControlService>(\n TYPES.IControlService,\n );\n this.sceneContainer = sceneContainer;\n this.isShow = true;\n this.container = this.onAdd();\n const container = this.container;\n const pos = this.controlOption.position;\n const corner = this.controlService.controlCorners[pos];\n DOM.addClass(container, 'l7-control');\n\n if (pos.indexOf('bottom') !== -1) {\n corner.insertBefore(container, corner.firstChild);\n } else {\n corner.appendChild(container);\n }\n return this;\n }\n public onAdd(): HTMLElement {\n throw new Error('Method not implemented.');\n }\n\n public onRemove(): void {\n throw new Error('Method not implemented.');\n }\n public hide() {\n const container = this.container;\n DOM.addClass(container, 'l7-control-hide');\n this.isShow = false;\n }\n public show() {\n const container = this.container;\n DOM.removeClass(container, 'l7-control-hide');\n this.isShow = true;\n }\n public remove() {\n if (!this.mapsService) {\n return this;\n }\n DOM.remove(this.container);\n this.onRemove();\n }\n public _refocusOnMap(e: MouseEvent) {\n // if map exists and event is not a keyboard event\n if (this.mapsService && e && e.screenX > 0 && e.screenY > 0) {\n const container = this.mapsService.getContainer();\n if (container !== null) {\n container.focus();\n }\n }\n }\n}\n"],"file":"BaseControl.js"}
|
package/lib/control/layer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/control/layer.ts"],"names":["Layers","cfg","layerControlInputs","layers","lastZIndex","handlingClick","initLayers","collapsed","position","PositionType","TOPRIGHT","autoZIndex","hideSingleBase","sortLayers","name","initLayout","update","mapsService","on","checkDisabledLayers","forEach","layerItem","layer","onLayerChange","container","addLayer","renderService","getViewportSize","height","DOM","addClass","form","style","acceptableHeight","offsetTop","clientHeight","removeClass","off","collapse","className","create","controlOption","setAttribute","addEventListener","expand","layersLink","link","title","baseLayersList","separator","overlaysList","appendChild","baseLayers","overlayers","Object","keys","index","empty","baseLayersPresent","overlaysPresent","i","obj","baseLayersCount","length","addItem","overlay","display","inputs","input","zoom","getZoom","layerService","getLayer","layerId","inited","minZoom","getMinZoom","maxZoom","getMaxZoom","disabled","push","sortFunction","sort","a","b","setZIndex","expandIfNotCollapsed","e","target","type","emit","checked","radioHtml","radioFragment","document","createElement","innerHTML","firstChild","label","id","isVisible","defaultChecked","createRadioElement","onInputClick","holder","addedLayers","removedLayers","l","hide","show","Control"],"mappings":"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","sourcesContent":["import { PositionType } from '@antv/l7-core';\nimport { bindAll, DOM } from '@antv/l7-utils';\nimport { ILayerControlOption } from '../interface';\nimport Control from './BaseControl';\n\ninterface IInputItem extends HTMLInputElement {\n layerId: string;\n}\n\nexport default class Layers extends Control {\n private layerControlInputs: any[];\n private layers: any[];\n private lastZIndex: number;\n private handlingClick: boolean;\n private layersLink: HTMLElement;\n private baseLayersList: HTMLElement;\n private separator: HTMLElement;\n private overlaysList: HTMLElement;\n private form: HTMLElement;\n\n constructor(cfg: Partial<ILayerControlOption>) {\n super(cfg);\n this.layerControlInputs = [];\n this.layers = [];\n this.lastZIndex = 0;\n this.handlingClick = false;\n this.initLayers();\n\n bindAll(\n [\n 'checkDisabledLayers',\n 'onLayerChange',\n 'collapse',\n 'extend',\n 'expand',\n 'onInputClick',\n ],\n this,\n );\n }\n\n public getDefault() {\n return {\n collapsed: true,\n position: PositionType.TOPRIGHT,\n autoZIndex: true,\n hideSingleBase: false,\n sortLayers: false,\n name: 'layers',\n };\n }\n public onAdd() {\n this.initLayout();\n this.update();\n this.mapsService.on('zoomend', this.checkDisabledLayers);\n this.layers.forEach((layerItem) => {\n layerItem.layer.on('remove', this.onLayerChange);\n layerItem.layer.on('add', this.onLayerChange);\n });\n return this.container;\n }\n\n public addVisualLayer(layer: any, name: string | number) {\n this.addLayer(layer, name, true);\n return this.mapsService ? this.update() : this;\n }\n public expand() {\n const { height } = this.renderService.getViewportSize();\n DOM.addClass(this.container, 'l7-control-layers-expanded');\n this.form.style.height = 'null';\n const acceptableHeight = height - (this.container.offsetTop + 50);\n if (acceptableHeight < this.form.clientHeight) {\n DOM.addClass(this.form, 'l7-control-layers-scrollbar');\n this.form.style.height = acceptableHeight + 'px';\n } else {\n DOM.removeClass(this.form, 'l7-control-layers-scrollbar');\n }\n this.checkDisabledLayers();\n return this;\n }\n\n public collapse() {\n DOM.removeClass(this.container, 'l7-control-layers-expanded');\n return this;\n }\n\n public onRemove() {\n if (!this.mapsService) {\n return;\n }\n this.mapsService.off('click', this.collapse);\n this.layers.forEach((layerItem) => {\n layerItem.layer.off('remove', this.onLayerChange);\n layerItem.layer.off('add', this.onLayerChange);\n });\n }\n private initLayout() {\n const className = 'l7-control-layers';\n const container = (this.container = DOM.create('div', className));\n const { collapsed } = this.controlOption;\n // makes this work on IE touch devices by stopping it from firing a mouseout event when the touch is released\n container.setAttribute('aria-haspopup', 'true');\n const form = (this.form = DOM.create(\n 'form',\n className + '-list',\n ) as HTMLElement);\n\n if (collapsed) {\n this.mapsService.on('click', this.collapse);\n container.addEventListener('mouseenter', this.expand);\n container.addEventListener('mouseleave', this.collapse);\n }\n\n this.layersLink = DOM.create('a', className + '-toggle', container);\n const link = this.layersLink;\n // link.href = '#';\n link.title = 'Layers';\n if (!collapsed) {\n this.expand();\n }\n this.baseLayersList = DOM.create('div', className + '-base', form);\n this.separator = DOM.create('div', className + '-separator', form);\n this.overlaysList = DOM.create('div', className + '-overlays', form);\n container.appendChild(form);\n }\n private initLayers() {\n const { baseLayers = {}, overlayers = {} } = this.controlOption;\n Object.keys(baseLayers).forEach((name: string, index: number) => {\n // baseLayers[name].once('inited', this.update);\n this.addLayer(baseLayers[name], name, false);\n });\n Object.keys(overlayers).forEach((name: any, index: number) => {\n // overlayers[name].once('inited', this.update);\n this.addLayer(overlayers[name], name, true);\n });\n }\n\n private update() {\n if (!this.container) {\n return this;\n }\n\n DOM.empty(this.baseLayersList);\n DOM.empty(this.overlaysList);\n\n this.layerControlInputs = [];\n let baseLayersPresent;\n let overlaysPresent;\n let i;\n let obj;\n let baseLayersCount = 0;\n\n for (i = 0; i < this.layers.length; i++) {\n obj = this.layers[i];\n this.addItem(obj);\n overlaysPresent = overlaysPresent || obj.overlay;\n baseLayersPresent = baseLayersPresent || !obj.overlay;\n baseLayersCount += !obj.overlay ? 1 : 0;\n }\n\n // Hide base layers section if there's only one layer.\n if (this.controlOption.hideSingleBase) {\n baseLayersPresent = baseLayersPresent && baseLayersCount > 1;\n this.baseLayersList.style.display = baseLayersPresent ? '' : 'none';\n }\n\n this.separator.style.display =\n overlaysPresent && baseLayersPresent ? '' : 'none';\n\n return this;\n }\n\n private checkDisabledLayers() {\n const inputs = this.layerControlInputs;\n let input: IInputItem;\n let layer;\n const zoom = this.mapsService.getZoom();\n\n for (let i = inputs.length - 1; i >= 0; i--) {\n input = inputs[i];\n layer = this.layerService.getLayer(input.layerId);\n\n if (layer && layer.inited) {\n const minZoom = layer.getMinZoom();\n const maxZoom = layer.getMaxZoom();\n\n input.disabled = zoom < minZoom || zoom > maxZoom;\n }\n }\n }\n\n private addLayer(layer: any, name: string | number, overlay: boolean) {\n if (this.mapsService) {\n layer.on('add', this.onLayerChange);\n layer.on('remove', this.onLayerChange);\n }\n this.layers.push({\n layer,\n name,\n overlay,\n });\n const { sortLayers, sortFunction, autoZIndex } = this.controlOption;\n if (sortLayers) {\n this.layers.sort((a, b) => {\n return sortFunction(a.layer, b.layer, a.name, b.name);\n });\n }\n\n if (autoZIndex && layer.setZIndex) {\n this.lastZIndex++;\n layer.setZIndex(this.lastZIndex);\n }\n\n this.expandIfNotCollapsed();\n }\n\n private expandIfNotCollapsed() {\n if (this.mapsService && !this.controlOption.collapsed) {\n this.expand();\n }\n return this;\n }\n\n private onLayerChange(e: any) {\n if (!this.handlingClick) {\n this.update();\n }\n\n const obj = this.layerService.getLayer(e.target.layerId);\n\n // @ts-ignore\n const type = obj?.overlay\n ? e.type === 'add'\n ? 'overlayadd'\n : 'overlayremove'\n : e.type === 'add'\n ? 'baselayerchange'\n : null;\n\n if (type) {\n this.emit(type, obj);\n }\n }\n\n private createRadioElement(name: string, checked: boolean): ChildNode {\n const radioHtml =\n '<input type=\"radio\" class=\"l7-control-layers-selector\" name=\"' +\n name +\n '\"' +\n (checked ? ' checked=\"checked\"' : '') +\n '/>';\n\n const radioFragment = document.createElement('div');\n radioFragment.innerHTML = radioHtml;\n\n return radioFragment.firstChild as ChildNode;\n }\n\n private addItem(obj: any) {\n const label = document.createElement('label');\n const layer = this.layerService.getLayer(obj.layer.id);\n const checked = layer && layer.inited && obj.layer.isVisible();\n let input: IInputItem;\n if (obj.overlay) {\n input = document.createElement('input') as IInputItem;\n input.type = 'checkbox';\n input.className = 'l7-control-layers-selector';\n input.defaultChecked = checked;\n } else {\n input = this.createRadioElement('l7-base-layers', checked) as IInputItem;\n }\n this.layerControlInputs.push(input);\n input.layerId = obj.layer.id;\n input.addEventListener('click', this.onInputClick);\n\n const name = document.createElement('span');\n name.innerHTML = ' ' + obj.name;\n\n const holder = document.createElement('div');\n\n label.appendChild(holder);\n holder.appendChild(input);\n holder.appendChild(name);\n\n const container = obj.overlay ? this.overlaysList : this.baseLayersList;\n container.appendChild(label);\n\n this.checkDisabledLayers();\n return label;\n }\n\n private onInputClick() {\n const inputs = this.layerControlInputs;\n let input;\n let layer;\n const addedLayers = [];\n const removedLayers = [];\n this.handlingClick = true;\n for (let i = inputs.length - 1; i >= 0; i--) {\n input = inputs[i];\n layer = this.layerService.getLayer(input.layerId);\n if (input.checked) {\n addedLayers.push(layer);\n } else if (!input.checked) {\n removedLayers.push(layer);\n }\n }\n removedLayers.forEach((l: any) => {\n l.hide();\n });\n addedLayers.forEach((l: any) => {\n l.show();\n });\n\n this.handlingClick = false;\n }\n}\n"],"file":"layer.js"}
|
package/lib/control/logo.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/control/logo.ts"],"names":["Logo","position","PositionType","BOTTOMLEFT","name","className","container","DOM","create","anchor","target","rel","href","setAttribute","appendChild","Control"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;;;;;;;;;IAEqBA,I;;;;;;;;;;;;WACnB,sBAAoB;AAClB,aAAO;AACLC,QAAAA,QAAQ,EAAEC,0BAAaC,UADlB;AAELC,QAAAA,IAAI,EAAE;AAFD,OAAP;AAID;;;WACD,iBAAe;AACb,UAAMC,SAAS,GAAG,iBAAlB;;AACA,UAAMC,SAAS,GAAGC,aAAIC,MAAJ,CAAW,KAAX,EAAkBH,SAAlB,CAAlB;;AACA,UAAMI,MAAuB,GAAGF,aAAIC,MAAJ,CAC9B,GAD8B,EAE9B,cAF8B,CAAhC;;AAIAC,MAAAA,MAAM,CAACC,MAAP,GAAgB,QAAhB;AACAD,MAAAA,MAAM,CAACE,GAAP,GAAa,mBAAb;AACAF,MAAAA,MAAM,CAACG,IAAP,GAAc,4BAAd;AACAH,MAAAA,MAAM,CAACI,YAAP,CAAoB,YAApB,EAAkC,WAAlC;AACAJ,MAAAA,MAAM,CAACI,YAAP,CAAoB,KAApB,EAA2B,mBAA3B;AACAP,MAAAA,SAAS,CAACQ,WAAV,CAAsBL,MAAtB;AACA,aAAOH,SAAP;AACD;;;WAED,oBAAkB;AAChB,aAAO,IAAP;AACD;;;EAzB+BS,oB","sourcesContent":["import { IControlOption } from '@antv/l7-core';\nimport { DOM } from '@antv/l7-utils';\nimport Control, { PositionType } from './BaseControl';\n\nexport default class Logo extends Control {\n public getDefault() {\n return {\n position: PositionType.BOTTOMLEFT,\n name: 'logo',\n };\n }\n public onAdd() {\n const className = 'l7-control-logo';\n const container = DOM.create('div', className);\n const anchor: HTMLLinkElement = DOM.create(\n 'a',\n 'l7-ctrl-logo',\n ) as HTMLLinkElement;\n anchor.target = '_blank';\n anchor.rel = 'noopener nofollow';\n anchor.href = 'https://antv.alipay.com/l7';\n anchor.setAttribute('aria-label', 'AntV logo');\n anchor.setAttribute('rel', 'noopener nofollow');\n container.appendChild(anchor);\n return container;\n }\n\n public onRemove() {\n return null;\n }\n}\n"],"file":"logo.js"}
|
package/lib/control/scale.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/control/scale.ts"],"names":["Scale","cfg","position","PositionType","BOTTOMLEFT","maxWidth","metric","updateWhenIdle","imperial","name","className","container","DOM","create","addScales","controlOption","mapsService","on","update","off","y","getSize","p1","containerToLngLat","p2","maxMeters","lng","lat","updateScales","updateMetric","updateImperial","meters","getRoundNum","label","updateScale","mScale","maxFeet","maxMiles","miles","feet","iScale","scale","text","ratio","style","width","Math","round","innerHTML","num","pow10","pow","floor","length","d","Control"],"mappings":"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","sourcesContent":["import { bindAll, DOM, lnglatDistance } from '@antv/l7-utils';\nimport { IScaleControlOption } from '../interface';\nimport Control, { PositionType } from './BaseControl';\n\nexport default class Scale extends Control {\n private mScale: HTMLElement;\n private iScale: HTMLElement;\n constructor(cfg?: Partial<IScaleControlOption>) {\n super(cfg);\n bindAll(['update'], this);\n }\n\n public getDefault() {\n return {\n position: PositionType.BOTTOMLEFT,\n maxWidth: 100,\n metric: true,\n updateWhenIdle: false,\n imperial: false,\n name: 'scale',\n };\n }\n\n public onAdd() {\n const className = 'l7-control-scale';\n const container = DOM.create('div', className);\n this.addScales(className + '-line', container);\n const { updateWhenIdle } = this.controlOption;\n // TODO: 高德地图和MapBox地图事件不一致问题\n // 高德zoomchange\n this.mapsService.on(updateWhenIdle ? 'moveend' : 'mapmove', this.update);\n this.mapsService.on(updateWhenIdle ? 'zoomend' : 'zoomchange', this.update);\n this.update();\n\n return container;\n }\n public onRemove() {\n const { updateWhenIdle } = this.controlOption;\n this.mapsService.off(\n updateWhenIdle ? 'zoomend' : 'zoomchange',\n this.update,\n );\n this.mapsService.off(updateWhenIdle ? 'moveend' : 'mapmove', this.update);\n }\n public update() {\n const mapsService = this.mapsService;\n const { maxWidth } = this.controlOption;\n const y = mapsService.getSize()[1] / 2;\n\n const p1 = mapsService.containerToLngLat([0, y]);\n const p2 = mapsService.containerToLngLat([maxWidth, y]);\n const maxMeters = lnglatDistance([p1.lng, p1.lat], [p2.lng, p2.lat]);\n this.updateScales(maxMeters);\n }\n public updateScales(maxMeters: number) {\n const { metric, imperial } = this.controlOption;\n if (metric && maxMeters) {\n this.updateMetric(maxMeters);\n }\n if (imperial && maxMeters) {\n this.updateImperial(maxMeters);\n }\n }\n private updateMetric(maxMeters: number) {\n const meters = this.getRoundNum(maxMeters);\n const label = meters < 1000 ? meters + ' m' : meters / 1000 + ' km';\n this.updateScale(this.mScale, label, meters / maxMeters);\n }\n private updateImperial(maxMeters: number) {\n const maxFeet = maxMeters * 3.2808399;\n let maxMiles: number;\n let miles: number;\n let feet: number;\n\n if (maxFeet > 5280) {\n maxMiles = maxFeet / 5280;\n miles = this.getRoundNum(maxMiles);\n this.updateScale(this.iScale, miles + ' mi', miles / maxMiles);\n } else {\n feet = this.getRoundNum(maxFeet);\n this.updateScale(this.iScale, feet + ' ft', feet / maxFeet);\n }\n }\n private updateScale(scale: HTMLElement, text: string, ratio: number) {\n const { maxWidth } = this.controlOption;\n scale.style.width = Math.round(maxWidth * ratio) + 'px';\n scale.innerHTML = text;\n }\n private getRoundNum(num: number) {\n const pow10 = Math.pow(10, (Math.floor(num) + '').length - 1);\n let d = num / pow10;\n\n d = d >= 10 ? 10 : d >= 5 ? 5 : d >= 3 ? 3 : d >= 2 ? 2 : 1;\n\n return pow10 * d;\n }\n private addScales(className: string, container: HTMLElement) {\n const { metric, imperial } = this.controlOption;\n if (metric) {\n this.mScale = DOM.create('div', className, container);\n }\n if (imperial) {\n this.iScale = DOM.create('div', className, container);\n }\n }\n}\n"],"file":"scale.js"}
|
package/lib/control/zoom.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/control/zoom.ts"],"names":["Zoom","cfg","position","PositionType","TOPLEFT","zoomInText","zoomInTitle","zoomOutText","zoomOutTitle","name","zoomName","container","DOM","create","zoomInButton","createButton","controlOption","zoomIn","zoomOutButton","zoomOut","mapsService","on","updateDisabled","off","disabled","getZoom","getMaxZoom","getMinZoom","html","tile","className","fn","link","innerHTML","title","href","addEventListener","removeClass","addClass","Control"],"mappings":"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","sourcesContent":["import { bindAll, DOM } from '@antv/l7-utils';\nimport { IZoomControlOption } from '../interface';\nimport Control, { PositionType } from './BaseControl';\n\nexport default class Zoom extends Control {\n private disabled: boolean;\n private zoomInButton: HTMLElement;\n private zoomOutButton: HTMLElement;\n\n constructor(cfg?: Partial<IZoomControlOption>) {\n super(cfg);\n bindAll(['updateDisabled', 'zoomIn', 'zoomOut'], this);\n }\n public getDefault() {\n return {\n position: PositionType.TOPLEFT,\n zoomInText: '+',\n zoomInTitle: 'Zoom in',\n zoomOutText: '−',\n zoomOutTitle: 'Zoom out',\n name: 'zoom',\n };\n }\n\n public onAdd(): HTMLElement {\n const zoomName = 'l7-control-zoom';\n const container = DOM.create('div', zoomName + ' l7-bar');\n\n this.zoomInButton = this.createButton(\n this.controlOption.zoomInText,\n this.controlOption.zoomInTitle,\n zoomName + '-in',\n container,\n this.zoomIn,\n );\n this.zoomOutButton = this.createButton(\n this.controlOption.zoomOutText,\n this.controlOption.zoomOutTitle,\n zoomName + '-out',\n container,\n this.zoomOut,\n );\n this.mapsService.on('zoomend', this.updateDisabled);\n this.mapsService.on('zoomchange', this.updateDisabled);\n this.updateDisabled();\n return container;\n }\n\n public onRemove() {\n this.mapsService.off('zoomend', this.updateDisabled);\n this.mapsService.off('zoomchange', this.updateDisabled);\n }\n\n public disable() {\n this.disabled = true;\n this.updateDisabled();\n return this;\n }\n\n public enable() {\n this.disabled = false;\n this.updateDisabled();\n return this;\n }\n\n private zoomIn() {\n if (\n !this.disabled &&\n this.mapsService.getZoom() < this.mapsService.getMaxZoom()\n ) {\n this.mapsService.zoomIn();\n }\n }\n private zoomOut() {\n if (\n !this.disabled &&\n this.mapsService.getZoom() > this.mapsService.getMinZoom()\n ) {\n this.mapsService.zoomOut();\n }\n }\n private createButton(\n html: string,\n tile: string,\n className: string,\n container: HTMLElement,\n fn: (...arg: any[]) => any,\n ) {\n const link = DOM.create('a', className, container) as HTMLLinkElement;\n link.innerHTML = html;\n link.title = tile;\n link.href = 'javascript:void(0)';\n link.addEventListener('click', fn);\n return link;\n }\n private updateDisabled() {\n const mapsService = this.mapsService;\n const className = 'l7-disabled';\n DOM.removeClass(this.zoomInButton, className);\n DOM.removeClass(this.zoomOutButton, className);\n if (this.disabled || mapsService.getZoom() <= mapsService.getMinZoom()) {\n DOM.addClass(this.zoomOutButton, className);\n }\n if (this.disabled || mapsService.getZoom() >= mapsService.getMaxZoom()) {\n DOM.addClass(this.zoomInButton, className);\n }\n }\n}\n"],"file":"zoom.js"}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAQA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["import Control from './control/BaseControl';\nimport Layers from './control/layer';\nimport Logo from './control/logo';\nimport Scale from './control/scale';\nimport Zoom from './control/zoom';\nimport Marker from './marker';\nimport MarkerLayer from './marker-layer';\nimport Popup from './popup';\n\n// 引入样式\n// TODO: 使用 Less 或者 Sass,每个组件单独引用自身样式\nimport './css/l7.css';\n\nexport { Control, Logo, Scale, Zoom, Layers, Marker, Popup, MarkerLayer };\n\nexport * from './interface';\n"],"file":"index.js"}
|
package/lib/interface.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"interface.js"}
|
package/lib/marker-layer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/marker-layer.ts"],"names":["MarkerLayer","option","markerLayerOption","getDefault","zoom","clusterOption","cluster","radius","maxZoom","minZoom","style","className","scene","mapsService","get","TYPES","IMapService","initCluster","update","on","addMarkers","marker","addPoint","markers","length","getZoom","bbox","getBounds","Math","floor","getClusterMarker","push","indexOf","markerIndex","splice","map","m","getElement","opacity","clusterMarkers","getMarkers","forEach","addTo","remove","clusterMarker","off","clear","removeAllListeners","id","getLnglat","lng","lat","feature","geometry","type","coordinates","properties","getExtData","marker_id","points","clusterIndex","load","Supercluster","viewBounds","viewBBox","concat","clusterPoint","getClusters","field","method","cluster_id","clusterData","getLeaves","columnData","item","data","column","Satistics","getColumn","stat","getSatByColumn","fieldName","toFixed","clusterId","limit","Infinity","offset","element","generateElement","bind","Marker","setLnglat","abs","el","DOM","create","label","span","point_count","text","textContent","EventEmitter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAQA;;AAKA;;AAEA;;;;;;;;;;IAUqBA,W;;;;;AAWnB,uBAAYC,MAAZ,EAAkD;AAAA;;AAAA;;AAAA;AAChD;AADgD,0FAVrB,EAUqB;AAAA;AAAA;AAAA,yFAPhB,EAOgB;AAAA,iGANd,EAMc;AAAA;AAAA;AAAA;AAAA;AAEhD,UAAKC,iBAAL,GAAyB,qBAAM,MAAKC,UAAL,EAAN,EAAyBF,MAAzB,CAAzB;AACA,0BAAQ,CAAC,QAAD,CAAR;AACA,UAAKG,IAAL,GAAY,gCAAKF,iBAAL,CAAuBG,aAAvB,gFAAsCD,IAAtC,KAA8C,CAAC,EAA3D;AAJgD;AAKjD;;;;WACD,sBAAoB;AAClB,aAAO;AACLE,QAAAA,OAAO,EAAE,KADJ;AAELD,QAAAA,aAAa,EAAE;AACbE,UAAAA,MAAM,EAAE,EADK;AAEbC,UAAAA,OAAO,EAAE,EAFI;AAGbC,UAAAA,OAAO,EAAE,CAHI;AAIbL,UAAAA,IAAI,EAAE,CAAC,EAJM;AAKbM,UAAAA,KAAK,EAAE,EALM;AAMbC,UAAAA,SAAS,EAAE;AANE;AAFV,OAAP;AAWD;;;WACD,eAAaC,KAAb,EAA+B;AAE7B,WAAKA,KAAL,GAAaA,KAAb;AACA,WAAKC,WAAL,GAAmBD,KAAK,CAACE,GAAN,CAAuBC,cAAMC,WAA7B,CAAnB;;AACA,UAAI,KAAKd,iBAAL,CAAuBI,OAA3B,EAAoC;AAClC,aAAKW,WAAL;AACA,aAAKC,MAAL;AAEA,aAAKL,WAAL,CAAiBM,EAAjB,CAAoB,cAApB,EAAoC,KAAKD,MAAzC;AACA,aAAKL,WAAL,CAAiBM,EAAjB,CAAoB,YAApB,EAAkC,KAAKD,MAAvC;AACD;;AACD,WAAKE,UAAL;AACA,aAAO,IAAP;AACD;;;WACD,mBAAiBC,MAAjB,EAAkC;AAChC,UAAMf,OAAO,GAAG,KAAKJ,iBAAL,CAAuBI,OAAvC;;AACA,UAAIA,OAAJ,EAAa;AACX,aAAKgB,QAAL,CAAcD,MAAd,EAAsB,KAAKE,OAAL,CAAaC,MAAnC;;AACA,YAAI,KAAKX,WAAT,EAAsB;AAEpB,cAAMT,IAAI,GAAG,KAAKS,WAAL,CAAiBY,OAAjB,EAAb;AACA,cAAMC,IAAI,GAAG,KAAKb,WAAL,CAAiBc,SAAjB,EAAb;AACA,eAAKD,IAAL,GAAY,wBAAUA,IAAV,EAAgB,GAAhB,CAAZ;AACA,eAAKtB,IAAL,GAAYwB,IAAI,CAACC,KAAL,CAAWzB,IAAX,CAAZ;AACA,eAAK0B,gBAAL,CAAsB,KAAKJ,IAA3B,EAAiC,KAAKtB,IAAtC;AACD;AACF;;AACD,WAAKmB,OAAL,CAAaQ,IAAb,CAAkBV,MAAlB;AACD;;;WAED,sBAAoBA,MAApB,EAAqC;AACnC,WAAKE,OAAL,CAAaS,OAAb,CAAqBX,MAArB;AACA,UAAMY,WAAW,GAAG,KAAKV,OAAL,CAAaS,OAAb,CAAqBX,MAArB,CAApB;;AACA,UAAIY,WAAW,GAAG,CAAC,CAAnB,EAAsB;AACpB,aAAKV,OAAL,CAAaW,MAAb,CAAoBD,WAApB,EAAiC,CAAjC;AACD;AACF;;;WAKD,gBAAc;AACZ,WAAKV,OAAL,CAAaY,GAAb,CAAiB,UAACC,CAAD,EAAO;AACtBA,QAAAA,CAAC,CAACC,UAAF,GAAe3B,KAAf,CAAqB4B,OAArB,GAA+B,GAA/B;AACD,OAFD;AAIA,WAAKC,cAAL,CAAoBJ,GAApB,CAAwB,UAACC,CAAD,EAAO;AAC7BA,QAAAA,CAAC,CAACC,UAAF,GAAe3B,KAAf,CAAqB4B,OAArB,GAA+B,GAA/B;AACD,OAFD;AAGD;;;WAKD,gBAAc;AACZ,WAAKf,OAAL,CAAaY,GAAb,CAAiB,UAACC,CAAD,EAAO;AACtBA,QAAAA,CAAC,CAACC,UAAF,GAAe3B,KAAf,CAAqB4B,OAArB,GAA+B,GAA/B;AACD,OAFD;AAIA,WAAKC,cAAL,CAAoBJ,GAApB,CAAwB,UAACC,CAAD,EAAO;AAC7BA,QAAAA,CAAC,CAACC,UAAF,GAAe3B,KAAf,CAAqB4B,OAArB,GAA+B,GAA/B;AACD,OAFD;AAGD;;;WAED,sBAAoB;AAClB,UAAMhC,OAAO,GAAG,KAAKJ,iBAAL,CAAuBI,OAAvC;AACA,aAAOA,OAAO,GAAG,KAAKiC,cAAR,GAAyB,KAAKhB,OAA5C;AACD;;;WAED,sBAAoB;AAAA;;AAClB,WAAKiB,UAAL,GAAkBC,OAAlB,CAA0B,UAACpB,MAAD,EAAqB;AAC7CA,QAAAA,MAAM,CAACqB,KAAP,CAAa,MAAI,CAAC9B,KAAlB;AACD,OAFD;AAGD;;;WACD,iBAAe;AACb,WAAKW,OAAL,CAAakB,OAAb,CAAqB,UAACpB,MAAD,EAAqB;AACxCA,QAAAA,MAAM,CAACsB,MAAP;AACD,OAFD;AAGA,WAAKJ,cAAL,CAAoBE,OAApB,CAA4B,UAACG,aAAD,EAA4B;AACtDA,QAAAA,aAAa,CAACD,MAAd;AACD,OAFD;AAGA,WAAK9B,WAAL,CAAiBgC,GAAjB,CAAqB,cAArB,EAAqC,KAAK3B,MAA1C;AACA,WAAKK,OAAL,GAAe,EAAf;AACA,WAAKgB,cAAL,GAAsB,EAAtB;AACD;;;WAED,mBAAiB;AACf,WAAKO,KAAL;AACA,WAAKC,kBAAL;AACD;;;WAED,kBAAiB1B,MAAjB,EAAkC2B,EAAlC,EAA8C;AAC5C,8BAAqB3B,MAAM,CAAC4B,SAAP,EAArB;AAAA,UAAQC,GAAR,qBAAQA,GAAR;AAAA,UAAaC,GAAb,qBAAaA,GAAb;;AACA,UAAMC,OAAsB,GAAG;AAC7BC,QAAAA,QAAQ,EAAE;AACRC,UAAAA,IAAI,EAAE,OADE;AAERC,UAAAA,WAAW,EAAE,CAACL,GAAD,EAAMC,GAAN;AAFL,SADmB;AAK7BK,QAAAA,UAAU,kCACLnC,MAAM,CAACoC,UAAP,EADK;AAERC,UAAAA,SAAS,EAAEV;AAFH;AALmB,OAA/B;AAUA,WAAKW,MAAL,CAAY5B,IAAZ,CAAiBqB,OAAjB;;AACA,UAAI,KAAKQ,YAAT,EAAuB;AAErB,aAAKA,YAAL,CAAkBC,IAAlB,CAAuB,KAAKF,MAA5B;AACD;AACF;;;WAED,uBAAsB;AACpB,UAAI,CAAC,KAAKzD,iBAAL,CAAuBI,OAA5B,EAAqC;AACnC;AACD;;AACD,iBAAyC,KAAKJ,iBAAL,CACtCG,aADH;AAAA,UAAQE,MAAR,QAAQA,MAAR;AAAA,8BAAgBE,OAAhB;AAAA,UAAgBA,OAAhB,6BAA0B,CAA1B;AAAA,UAA6BD,OAA7B,QAA6BA,OAA7B;AAEA,WAAKoD,YAAL,GAAoB,IAAIE,qBAAJ,CAAiB;AACnCvD,QAAAA,MAAM,EAANA,MADmC;AAEnCE,QAAAA,OAAO,EAAPA,OAFmC;AAGnCD,QAAAA,OAAO,EAAPA;AAHmC,OAAjB,CAApB;AAMA,WAAKoD,YAAL,CAAkBC,IAAlB,CAAuB,KAAKF,MAA5B;AACD;;;WAED,0BAAyBI,UAAzB,EAA8C3D,IAA9C,EAA4D;AAAA;;AAC1D,UAAM4D,QAAQ,GAAGD,UAAU,CAAC,CAAD,CAAV,CAAcE,MAAd,CAAqBF,UAAU,CAAC,CAAD,CAA/B,CAAjB;AACA,UAAMG,YAAY,GAAG,KAAKN,YAAL,CAAkBO,WAAlB,CAA8BH,QAA9B,EAAwC5D,IAAxC,CAArB;AACA,WAAKmC,cAAL,CAAoBE,OAApB,CAA4B,UAACpB,MAAD,EAAqB;AAC/CA,QAAAA,MAAM,CAACsB,MAAP;AACD,OAFD;AAGA,WAAKJ,cAAL,GAAsB,EAAtB;AACA2B,MAAAA,YAAY,CAACzB,OAAb,CAAqB,UAACW,OAAD,EAAkB;AAAA;;AACrC,oCAA0B,MAAI,CAAClD,iBAAL,CAAuBG,aAAjD;AAAA,YAAQ+D,KAAR,yBAAQA,KAAR;AAAA,YAAeC,MAAf,yBAAeA,MAAf;;AAEA,YAAIjB,OAAO,CAACI,UAAR,2BAAsBJ,OAAO,CAACI,UAA9B,gDAAsB,oBAAoBc,UAA9C,EAA0D;AAAA;;AACxD,cAAMC,WAAW,GAAG,MAAI,CAACC,SAAL,yBAAepB,OAAO,CAACI,UAAvB,yDAAe,qBAAoBc,UAAnC,CAApB;;AACAlB,UAAAA,OAAO,CAACI,UAAR,CAAmBe,WAAnB,GAAiCA,WAAjC;;AACA,cAAIH,KAAK,IAAIC,MAAb,EAAqB;AACnB,gBAAMI,UAAU,GAAGF,WAAH,aAAGA,WAAH,uBAAGA,WAAW,CAAEpC,GAAb,CAAiB,UAACuC,IAAD,EAAe;AACjD,kBAAMC,IAAI,qCACPP,KADO,EACCM,IAAI,CAAClB,UAAL,CAAgBY,KAAhB,CADD,CAAV;AAGA,qBAAOO,IAAP;AACD,aALkB,CAAnB;;AAMA,gBAAMC,MAAM,GAAGC,mBAAUC,SAAV,CAAoBL,UAApB,EAAuCL,KAAvC,CAAf;;AACA,gBAAMW,IAAI,GAAGF,mBAAUG,cAAV,CAAyBX,MAAzB,EAAiCO,MAAjC,CAAb;;AACA,gBAAMK,SAAS,GAAG,WAAWZ,MAA7B;AACAjB,YAAAA,OAAO,CAACI,UAAR,CAAmByB,SAAnB,IAAgCF,IAAI,CAACG,OAAL,CAAa,CAAb,CAAhC;AACD;AACF;;AACD,YAAM7D,MAAM,GAAG,MAAI,CAACuB,aAAL,CAAmBQ,OAAnB,CAAf;;AACA,QAAA,MAAI,CAACb,cAAL,CAAoBR,IAApB,CAAyBV,MAAzB;;AACAA,QAAAA,MAAM,CAACqB,KAAP,CAAa,MAAI,CAAC9B,KAAlB;AACD,OAtBD;AAuBD;;;WACD,mBACEuE,SADF,EAIE;AAAA,UAFAC,KAEA,uEAFgBC,QAEhB;AAAA,UADAC,MACA,uEADiB,CACjB;;AACA,UAAI,CAACH,SAAL,EAAgB;AACd,eAAO,IAAP;AACD;;AACD,aAAO,KAAKvB,YAAL,CAAkBY,SAAlB,CAA4BW,SAA5B,EAAuCC,KAAvC,EAA8CE,MAA9C,CAAP;AACD;;;WACD,uBAAsBlC,OAAtB,EAAoC;AAClC,UAAM/C,aAAa,GAAG,KAAKH,iBAAL,CAAuBG,aAA7C;AAEA,kBAEIA,aAFJ;AAAA,gCACEkF,OADF;AAAA,UACEA,OADF,8BACY,KAAKC,eAAL,CAAqBC,IAArB,CAA0B,IAA1B,CADZ;AAGA,UAAMpE,MAAM,GAAG,IAAIqE,eAAJ,CAAW;AACxBH,QAAAA,OAAO,EAAEA,OAAO,CAACnC,OAAD;AADQ,OAAX,EAEZuC,SAFY,CAEF;AACXzC,QAAAA,GAAG,EAAEE,OAAO,CAACC,QAAR,CAAiBE,WAAjB,CAA6B,CAA7B,CADM;AAEXJ,QAAAA,GAAG,EAAEC,OAAO,CAACC,QAAR,CAAiBE,WAAjB,CAA6B,CAA7B;AAFM,OAFE,CAAf;AAMA,aAAOlC,MAAP;AACD;;;WACD,sBAAqB+B,OAArB,EAAmC;AACjC,UAAMM,SAAS,GAAGN,OAAO,CAACI,UAAR,CAAmBE,SAArC;AACA,aAAO,KAAKnC,OAAL,CAAamC,SAAb,CAAP;AACD;;;WAED,kBAAiB;AACf,UAAI,CAAC,KAAK7C,WAAV,EAAuB;AACrB;AACD;;AACD,UAAMT,IAAI,GAAG,KAAKS,WAAL,CAAiBY,OAAjB,EAAb;AACA,UAAMC,IAAI,GAAG,KAAKb,WAAL,CAAiBc,SAAjB,EAAb;;AACA,UACE,CAAC,KAAKD,IAAN,IACAE,IAAI,CAACgE,GAAL,CAASxF,IAAI,GAAG,KAAKA,IAArB,KAA8B,CAD9B,IAEA,CAAC,6BAAe,KAAKsB,IAApB,EAA0BA,IAA1B,CAHH,EAIE;AACA,aAAKA,IAAL,GAAY,wBAAUA,IAAV,EAAgB,GAAhB,CAAZ;AACA,aAAKtB,IAAL,GAAYwB,IAAI,CAACC,KAAL,CAAWzB,IAAX,CAAZ;AACA,aAAK0B,gBAAL,CAAsB,KAAKJ,IAA3B,EAAiC,KAAKtB,IAAtC;AACD;AACF;;;WAED,yBAAwBgD,OAAxB,EAAsC;AACpC,UAAMyC,EAAE,GAAGC,aAAIC,MAAJ,CAAW,KAAX,EAAkB,mBAAlB,CAAX;;AACA,UAAMC,KAAK,GAAGF,aAAIC,MAAJ,CAAW,KAAX,EAAkB,EAAlB,EAAsBF,EAAtB,CAAd;;AACA,UAAMI,IAAI,GAAGH,aAAIC,MAAJ,CAAW,MAAX,EAAmB,EAAnB,EAAuBC,KAAvB,CAAb;;AACA,mCAA0B,KAAK9F,iBAAL,CAAuBG,aAAjD;AAAA,UAAQ+D,KAAR,0BAAQA,KAAR;AAAA,UAAeC,MAAf,0BAAeA,MAAf;AACAjB,MAAAA,OAAO,CAACI,UAAR,CAAmB0C,WAAnB,GAAiC9C,OAAO,CAACI,UAAR,CAAmB0C,WAAnB,IAAkC,CAAnE;AAEA,UAAMC,IAAI,GACR/B,KAAK,IAAIC,MAAT,GACIjB,OAAO,CAACI,UAAR,CAAmB,WAAWa,MAA9B,KAAyCjB,OAAO,CAACI,UAAR,CAAmBY,KAAnB,CAD7C,GAEIhB,OAAO,CAACI,UAAR,CAAmB0C,WAHzB;AAIAD,MAAAA,IAAI,CAACG,WAAL,GAAmBD,IAAnB;AACA,aAAON,EAAP;AACD;;;EArPsCQ,0B","sourcesContent":["import { IMapService, IMarker, TYPES } from '@antv/l7-core';\nimport {\n bindAll,\n boundsContains,\n DOM,\n IBounds,\n padBounds,\n Satistics,\n} from '@antv/l7-utils';\nimport { EventEmitter } from 'eventemitter3';\nimport { Container } from 'inversify';\nimport { merge } from 'lodash';\n// @ts-ignore\n// tslint:disable-next-line:no-submodule-imports\nimport Supercluster from 'supercluster/dist/supercluster';\nimport { IMarkerLayerOption, IMarkerStyleOption } from './interface';\nimport Marker from './marker';\n\ninterface IPointFeature {\n geometry: {\n type: 'Point';\n coordinates: [number, number];\n };\n properties: any;\n}\n\nexport default class MarkerLayer extends EventEmitter {\n private markers: IMarker[] = [];\n private markerLayerOption: IMarkerLayerOption;\n private clusterIndex: Supercluster;\n private points: IPointFeature[] = [];\n private clusterMarkers: IMarker[] = [];\n private mapsService: IMapService<unknown>;\n private scene: Container;\n private zoom: number;\n private bbox: IBounds;\n\n constructor(option?: Partial<IMarkerLayerOption>) {\n super();\n this.markerLayerOption = merge(this.getDefault(), option);\n bindAll(['update'], this);\n this.zoom = this.markerLayerOption.clusterOption?.zoom || -99;\n }\n public getDefault() {\n return {\n cluster: false,\n clusterOption: {\n radius: 80,\n maxZoom: 20,\n minZoom: 0,\n zoom: -99,\n style: {},\n className: '',\n },\n };\n }\n public addTo(scene: Container) {\n // this.remove();\n this.scene = scene;\n this.mapsService = scene.get<IMapService>(TYPES.IMapService);\n if (this.markerLayerOption.cluster) {\n this.initCluster();\n this.update();\n // 地图视野变化时,重新计算视野内的聚合点。\n this.mapsService.on('camerachange', this.update); // amap1.x 更新事件\n this.mapsService.on('viewchange', this.update); // amap2.0 更新事件\n }\n this.addMarkers();\n return this;\n }\n public addMarker(marker: IMarker) {\n const cluster = this.markerLayerOption.cluster;\n if (cluster) {\n this.addPoint(marker, this.markers.length);\n if (this.mapsService) {\n // 在新增 marker 的时候需要更新聚合信息(哪怕此时的 zoom 没有发生变化)\n const zoom = this.mapsService.getZoom();\n const bbox = this.mapsService.getBounds();\n this.bbox = padBounds(bbox, 0.5);\n this.zoom = Math.floor(zoom);\n this.getClusterMarker(this.bbox, this.zoom);\n }\n }\n this.markers.push(marker);\n }\n\n public removeMarker(marker: IMarker) {\n this.markers.indexOf(marker);\n const markerIndex = this.markers.indexOf(marker);\n if (markerIndex > -1) {\n this.markers.splice(markerIndex, 1);\n }\n }\n\n /**\n * 隐藏 marker 在每个 marker 上单独修改属性而不是在 markerContainer 上修改(在 markerContainer 修改会有用户在场景加载完之前调用失败的问题)\n */\n public hide() {\n this.markers.map((m) => {\n m.getElement().style.opacity = '0';\n });\n\n this.clusterMarkers.map((m) => {\n m.getElement().style.opacity = '0';\n });\n }\n\n /**\n * 显示 marker\n */\n public show() {\n this.markers.map((m) => {\n m.getElement().style.opacity = '1';\n });\n\n this.clusterMarkers.map((m) => {\n m.getElement().style.opacity = '1';\n });\n }\n\n public getMarkers() {\n const cluster = this.markerLayerOption.cluster;\n return cluster ? this.clusterMarkers : this.markers;\n }\n\n public addMarkers() {\n this.getMarkers().forEach((marker: IMarker) => {\n marker.addTo(this.scene);\n });\n }\n public clear() {\n this.markers.forEach((marker: IMarker) => {\n marker.remove();\n });\n this.clusterMarkers.forEach((clusterMarker: IMarker) => {\n clusterMarker.remove();\n });\n this.mapsService.off('camerachange', this.update);\n this.markers = [];\n this.clusterMarkers = [];\n }\n\n public destroy() {\n this.clear();\n this.removeAllListeners();\n }\n\n private addPoint(marker: IMarker, id: number) {\n const { lng, lat } = marker.getLnglat();\n const feature: IPointFeature = {\n geometry: {\n type: 'Point',\n coordinates: [lng, lat],\n },\n properties: {\n ...marker.getExtData(),\n marker_id: id,\n },\n };\n this.points.push(feature);\n if (this.clusterIndex) {\n // 在新增点的时候需要更新 cluster 的数据\n this.clusterIndex.load(this.points);\n }\n }\n\n private initCluster() {\n if (!this.markerLayerOption.cluster) {\n return;\n }\n const { radius, minZoom = 0, maxZoom } = this.markerLayerOption\n .clusterOption as IMarkerStyleOption;\n this.clusterIndex = new Supercluster({\n radius,\n minZoom,\n maxZoom,\n });\n // @ts-ignore\n this.clusterIndex.load(this.points);\n }\n\n private getClusterMarker(viewBounds: IBounds, zoom: number) {\n const viewBBox = viewBounds[0].concat(viewBounds[1]);\n const clusterPoint = this.clusterIndex.getClusters(viewBBox, zoom);\n this.clusterMarkers.forEach((marker: IMarker) => {\n marker.remove();\n });\n this.clusterMarkers = [];\n clusterPoint.forEach((feature: any) => {\n const { field, method } = this.markerLayerOption.clusterOption;\n // 处理聚合数据\n if (feature.properties && feature.properties?.cluster_id) {\n const clusterData = this.getLeaves(feature.properties?.cluster_id);\n feature.properties.clusterData = clusterData;\n if (field && method) {\n const columnData = clusterData?.map((item: any) => {\n const data = {\n [field]: item.properties[field],\n };\n return data;\n });\n const column = Satistics.getColumn(columnData as any, field);\n const stat = Satistics.getSatByColumn(method, column);\n const fieldName = 'point_' + method;\n feature.properties[fieldName] = stat.toFixed(2);\n }\n }\n const marker = this.clusterMarker(feature);\n this.clusterMarkers.push(marker);\n marker.addTo(this.scene);\n });\n }\n private getLeaves(\n clusterId: number,\n limit: number = Infinity,\n offset: number = 0,\n ) {\n if (!clusterId) {\n return null;\n }\n return this.clusterIndex.getLeaves(clusterId, limit, offset);\n }\n private clusterMarker(feature: any) {\n const clusterOption = this.markerLayerOption.clusterOption;\n\n const {\n element = this.generateElement.bind(this),\n } = clusterOption as IMarkerStyleOption;\n const marker = new Marker({\n element: element(feature),\n }).setLnglat({\n lng: feature.geometry.coordinates[0],\n lat: feature.geometry.coordinates[1],\n });\n return marker;\n }\n private normalMarker(feature: any) {\n const marker_id = feature.properties.marker_id;\n return this.markers[marker_id];\n }\n\n private update() {\n if (!this.mapsService) {\n return;\n }\n const zoom = this.mapsService.getZoom();\n const bbox = this.mapsService.getBounds();\n if (\n !this.bbox ||\n Math.abs(zoom - this.zoom) >= 1 ||\n !boundsContains(this.bbox, bbox)\n ) {\n this.bbox = padBounds(bbox, 0.5);\n this.zoom = Math.floor(zoom);\n this.getClusterMarker(this.bbox, this.zoom);\n }\n }\n\n private generateElement(feature: any) {\n const el = DOM.create('div', 'l7-marker-cluster');\n const label = DOM.create('div', '', el);\n const span = DOM.create('span', '', label);\n const { field, method } = this.markerLayerOption.clusterOption;\n feature.properties.point_count = feature.properties.point_count || 1;\n\n const text =\n field && method\n ? feature.properties['point_' + method] || feature.properties[field]\n : feature.properties.point_count;\n span.textContent = text;\n return el;\n }\n}\n"],"file":"marker-layer.js"}
|
package/lib/marker.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/marker.ts"],"names":["Marker","option","e","emit","type","target","data","markerOption","extData","lngLat","getDefault","init","element","undefined","anchor","anchorType","BOTTOM","offsets","color","draggable","scene","mapsService","get","TYPES","IMapService","sceneSerive","ISceneService","getMarkerContainer","appendChild","registerMarkerEvent","on","update","added","off","onMapClick","addDragHandler","onUp","unRegisterMarkerEvent","removeAllListeners","DOM","remove","popup","Array","isArray","lng","lat","setLnglat","el","once","setElement","openPopup","isOpen","addTo","closePopup","Error","updatePosition","setTransform","anchorTranslate","togglePopup","bounds","getBounds","pos","lngLatToContainer","style","display","whiteSpace","container","getContainer","containerWidth","containerHeight","scrollWidth","scrollHeight","Math","abs","x","newPos","y","left","top","defaultMarker","create","svg","document","createElementNS","setAttributeNS","path","addClass","Object","keys","forEach","key","value","addEventListener","eventHandle","getElement","removeEventListener","EventEmitter"],"mappings":"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","sourcesContent":["import {\n ILngLat,\n IMapService,\n IMarkerOption,\n IPoint,\n IPopup,\n ISceneService,\n TYPES,\n} from '@antv/l7-core';\nimport {\n anchorTranslate,\n anchorType,\n applyAnchorClass,\n bindAll,\n DOM,\n} from '@antv/l7-utils';\nimport { EventEmitter } from 'eventemitter3';\nimport { Container } from 'inversify';\n\n// marker 支持 dragger 未完成\nexport default class Marker extends EventEmitter {\n private markerOption: IMarkerOption;\n private defaultMarker: boolean;\n private popup: IPopup;\n private mapsService: IMapService<unknown>;\n private sceneSerive: ISceneService;\n private lngLat: ILngLat;\n private scene: Container;\n private added: boolean = false;\n constructor(option?: Partial<IMarkerOption>) {\n super();\n this.markerOption = {\n ...this.getDefault(),\n ...option,\n };\n bindAll(['update', 'onMove', 'onUp', 'addDragHandler', 'onMapClick'], this);\n this.init();\n }\n\n public getDefault() {\n return {\n element: undefined, // DOM element\n anchor: anchorType.BOTTOM,\n offsets: [0, 0],\n color: '#5B8FF9',\n draggable: false,\n };\n }\n\n public addTo(scene: Container) {\n // this.remove();\n this.scene = scene;\n this.mapsService = scene.get<IMapService>(TYPES.IMapService);\n this.sceneSerive = scene.get<ISceneService>(TYPES.ISceneService);\n const { element, draggable } = this.markerOption;\n // this.sceneSerive.getSceneContainer().appendChild(element as HTMLElement);\n this.mapsService.getMarkerContainer().appendChild(element as HTMLElement);\n this.registerMarkerEvent(element as HTMLElement);\n this.mapsService.on('camerachange', this.update); // 注册高德1.x 的地图事件监听\n this.mapsService.on('viewchange', this.update); // 注册高德2.0 的地图事件监听\n this.update();\n this.added = true;\n this.emit('added');\n return this;\n }\n\n public remove() {\n if (this.mapsService) {\n this.mapsService.off('click', this.onMapClick);\n this.mapsService.off('move', this.update);\n this.mapsService.off('moveend', this.update);\n this.mapsService.off('mousedown', this.addDragHandler);\n this.mapsService.off('touchstart', this.addDragHandler);\n this.mapsService.off('mouseup', this.onUp);\n this.mapsService.off('touchend', this.onUp);\n }\n this.unRegisterMarkerEvent();\n this.removeAllListeners();\n const { element } = this.markerOption;\n if (element) {\n DOM.remove(element);\n }\n if (this.popup) {\n this.popup.remove();\n }\n return this;\n }\n\n public setLnglat(lngLat: ILngLat | IPoint) {\n this.lngLat = lngLat as ILngLat;\n if (Array.isArray(lngLat)) {\n this.lngLat = {\n lng: lngLat[0],\n lat: lngLat[1],\n };\n }\n\n if (this.popup) {\n this.popup.setLnglat(this.lngLat);\n }\n this.update();\n return this;\n }\n\n public getLnglat(): ILngLat {\n return this.lngLat;\n }\n\n public getElement(): HTMLElement {\n return this.markerOption.element as HTMLElement;\n }\n\n public setElement(el: HTMLElement): this {\n if (!this.added) {\n this.once('added', () => {\n this.setElement(el);\n });\n return this;\n }\n const { element } = this.markerOption;\n if (element) {\n DOM.remove(element);\n }\n this.markerOption.element = el;\n this.init();\n this.mapsService.getMarkerContainer().appendChild(el as HTMLElement);\n this.registerMarkerEvent(el as HTMLElement);\n this.update();\n return this;\n }\n\n public openPopup(): this {\n if (!this.added) {\n this.once('added', () => {\n this.openPopup();\n });\n return this;\n }\n const popup = this.popup;\n if (!popup) {\n return this;\n }\n if (!popup.isOpen()) {\n popup.addTo(this.scene);\n }\n return this;\n }\n\n public closePopup(): this {\n if (!this.added) {\n this.once('added', () => {\n this.closePopup();\n });\n }\n const popup = this.popup;\n if (popup) {\n popup.remove();\n }\n return this;\n }\n\n public setPopup(popup: IPopup) {\n this.popup = popup;\n if (this.lngLat) {\n this.popup.setLnglat(this.lngLat);\n }\n return this;\n }\n\n public togglePopup() {\n const popup = this.popup;\n if (!popup) {\n return this;\n } else if (popup.isOpen()) {\n popup.remove();\n } else {\n popup.addTo(this.scene);\n }\n return this;\n }\n\n public getPopup() {\n return this.popup;\n }\n\n public getOffset(): number[] {\n return this.markerOption.offsets;\n }\n\n public setDraggable(draggable: boolean) {\n throw new Error('Method not implemented.');\n }\n\n public isDraggable() {\n return this.markerOption.draggable;\n }\n\n public getExtData() {\n return this.markerOption.extData;\n }\n\n public setExtData(data: any) {\n this.markerOption.extData = data;\n }\n\n private update() {\n if (!this.mapsService) {\n return;\n }\n const { element, anchor } = this.markerOption;\n this.updatePosition();\n DOM.setTransform(element as HTMLElement, `${anchorTranslate[anchor]}`);\n }\n\n private onMapClick(e: MouseEvent) {\n const { element } = this.markerOption;\n if (this.popup && element) {\n this.togglePopup();\n }\n }\n\n private updatePosition() {\n if (!this.mapsService) {\n return;\n }\n const { element, offsets } = this.markerOption;\n const { lng, lat } = this.lngLat;\n const bounds = this.mapsService.getBounds();\n const pos = this.mapsService.lngLatToContainer([lng, lat]);\n\n if (element) {\n element.style.display = 'block';\n element.style.whiteSpace = 'nowrap';\n const container = this.mapsService.getContainer();\n let containerWidth = 0;\n let containerHeight = 0;\n if (container) {\n containerWidth = container.scrollWidth;\n containerHeight = container.scrollHeight;\n }\n // 当前可视区域包含跨日界线\n if (Math.abs(bounds[0][0]) > 180 || Math.abs(bounds[1][0]) > 180) {\n if (pos.x > containerWidth) {\n // 日界线右侧点左移\n const newPos = this.mapsService.lngLatToContainer([lng - 360, lat]);\n pos.x = newPos.x;\n }\n if (pos.x < 0) {\n // 日界线左侧点右移\n const newPos = this.mapsService.lngLatToContainer([lng + 360, lat]);\n pos.x = newPos.x;\n }\n }\n // 不在当前可视区域内隐藏点\n if (\n pos.x > containerWidth ||\n pos.x < 0 ||\n pos.y > containerHeight ||\n pos.y < 0\n ) {\n element.style.display = 'none';\n }\n element.style.left = pos.x + offsets[0] + 'px';\n element.style.top = pos.y - offsets[1] + 'px';\n }\n }\n\n private init() {\n let { element } = this.markerOption;\n const { color, anchor } = this.markerOption;\n if (!element) {\n this.defaultMarker = true;\n element = DOM.create('div') as HTMLDivElement;\n this.markerOption.element = element;\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttributeNS(null, 'display', 'block');\n svg.setAttributeNS(null, 'height', '48px');\n svg.setAttributeNS(null, 'width', '48px');\n svg.setAttributeNS(null, 'viewBox', '0 0 1024 1024');\n\n const path = document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'path',\n );\n path.setAttributeNS(\n null,\n 'd',\n 'M512 490.666667C453.12 490.666667 405.333333 442.88 405.333333 384 405.333333 325.12 453.12 277.333333 512 277.333333 570.88 277.333333 618.666667 325.12 618.666667 384 618.666667 442.88 570.88 490.666667 512 490.666667M512 85.333333C346.88 85.333333 213.333333 218.88 213.333333 384 213.333333 608 512 938.666667 512 938.666667 512 938.666667 810.666667 608 810.666667 384 810.666667 218.88 677.12 85.333333 512 85.333333Z',\n );\n path.setAttributeNS(null, 'fill', color);\n svg.appendChild(path);\n element.appendChild(svg);\n }\n DOM.addClass(element, 'l7-marker');\n Object.keys(this.markerOption.style || {}).forEach(\n // @ts-ignore\n (key: keyof CSSStyleDeclaration) => {\n const value =\n this.markerOption?.style && (this.markerOption?.style[key] as string);\n if (element) {\n // @ts-ignore\n (element.style as CSSStyleDeclaration)[key] = value;\n }\n },\n );\n\n element.addEventListener('click', (e: MouseEvent) => {\n this.onMapClick(e);\n });\n element.addEventListener('click', this.eventHandle);\n applyAnchorClass(element, anchor, 'marker');\n }\n private registerMarkerEvent(element: HTMLElement) {\n element.addEventListener('mousemove', this.eventHandle);\n element.addEventListener('click', this.eventHandle);\n element.addEventListener('mousedown', this.eventHandle);\n element.addEventListener('mouseup', this.eventHandle);\n element.addEventListener('dblclick', this.eventHandle);\n element.addEventListener('contextmenu', this.eventHandle);\n element.addEventListener('mouseover', this.eventHandle);\n element.addEventListener('mouseout', this.eventHandle);\n }\n private unRegisterMarkerEvent() {\n const element = this.getElement();\n element.removeEventListener('mousemove', this.eventHandle);\n element.removeEventListener('click', this.eventHandle);\n element.removeEventListener('mousedown', this.eventHandle);\n element.removeEventListener('mouseup', this.eventHandle);\n element.removeEventListener('dblclick', this.eventHandle);\n element.removeEventListener('contextmenu', this.eventHandle);\n element.removeEventListener('mouseover', this.eventHandle);\n element.removeEventListener('mouseout', this.eventHandle);\n }\n\n private eventHandle = (e: MouseEvent) => {\n this.emit(e.type, {\n target: e,\n data: this.markerOption.extData,\n lngLat: this.lngLat,\n });\n };\n private addDragHandler(e: MouseEvent) {\n throw new Error('Method not implemented.');\n }\n\n private onUp(e: MouseEvent) {\n throw new Error('Method not implemented.');\n }\n}\n"],"file":"marker.js"}
|
package/lib/popup.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/popup.ts"],"names":["Popup","cfg","popupOption","getdefault","scene","mapsService","get","TYPES","IMapService","sceneSerive","ISceneService","on","update","closeOnClick","timeoutInstance","setTimeout","onClickClose","emit","remove","addTo","html","frag","window","document","createDocumentFragment","temp","createElement","child","innerHTML","firstChild","appendChild","setDOMContent","lngLat","Array","isArray","lng","lat","text","createTextNode","maxWidth","htmlNode","createContent","content","removeDom","container","off","clearTimeout","DOM","create","closeButton","closeButtonOffsets","style","right","top","setAttribute","addEventListener","tagName","className","el","undefined","node","parentNode","removeChild","offsets","anchor","anchorType","BOTTOM","stopPropagation","e","hasPosition","popupContainer","getMarkerContainer","creatDom","tip","split","forEach","name","classList","add","type","whiteSpace","updatePosition","setTransform","anchorTranslate","pos","lngLatToContainer","left","x","y","EventEmitter"],"mappings":"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","sourcesContent":["import {\n ILngLat,\n IMapService,\n IPoint,\n IPopup,\n IPopupOption,\n ISceneService,\n TYPES,\n} from '@antv/l7-core';\nimport {\n anchorTranslate,\n anchorType,\n applyAnchorClass,\n bindAll,\n DOM,\n} from '@antv/l7-utils';\nimport { EventEmitter } from 'eventemitter3';\nimport { Container } from 'inversify';\n\n/** colse event */\n\nexport default class Popup extends EventEmitter implements IPopup {\n private popupOption: IPopupOption;\n private mapsService: IMapService<unknown>;\n private sceneSerive: ISceneService;\n private lngLat: ILngLat;\n private content: HTMLElement;\n private closeButton: HTMLElement;\n private timeoutInstance: any;\n private container: HTMLElement;\n private tip: HTMLElement;\n private scene: Container;\n\n constructor(cfg?: Partial<IPopupOption>) {\n super();\n this.popupOption = {\n ...this.getdefault(),\n ...cfg,\n };\n bindAll(['update', 'onClickClose', 'remove'], this);\n }\n\n public addTo(scene: Container) {\n this.mapsService = scene.get<IMapService>(TYPES.IMapService);\n this.sceneSerive = scene.get<ISceneService>(TYPES.ISceneService);\n this.mapsService.on('camerachange', this.update);\n this.mapsService.on('viewchange', this.update);\n this.scene = scene;\n this.update();\n if (this.popupOption.closeOnClick) {\n this.timeoutInstance = setTimeout(() => {\n this.mapsService.on('click', this.onClickClose);\n }, 30);\n }\n this.emit('open');\n return this;\n }\n\n public close(): void {\n this.remove();\n }\n\n public open(): void {\n this.addTo(this.scene);\n }\n\n public setHTML(html: string) {\n const frag = window.document.createDocumentFragment();\n const temp = window.document.createElement('body');\n let child: ChildNode | null;\n temp.innerHTML = html;\n while (true) {\n child = temp.firstChild;\n if (!child) {\n break;\n }\n frag.appendChild(child);\n }\n\n return this.setDOMContent(frag);\n }\n\n public setLnglat(lngLat: ILngLat | number[]): this {\n this.lngLat = lngLat as ILngLat;\n if (Array.isArray(lngLat)) {\n this.lngLat = {\n lng: lngLat[0],\n lat: lngLat[1],\n };\n }\n if (this.mapsService) {\n this.mapsService.on('camerachange', this.update);\n this.mapsService.on('viewchange', this.update);\n }\n this.update();\n return this;\n }\n public getLnglat(): ILngLat {\n return this.lngLat;\n }\n public setText(text: string) {\n return this.setDOMContent(window.document.createTextNode(text));\n }\n\n public setMaxWidth(maxWidth: string): this {\n this.popupOption.maxWidth = maxWidth;\n this.update();\n return this;\n }\n\n public setDOMContent(htmlNode: ChildNode | DocumentFragment) {\n this.createContent();\n this.content.appendChild(htmlNode);\n this.update();\n return this;\n }\n\n // 移除popup\n public remove() {\n if (this.content) {\n this.removeDom(this.content);\n }\n\n if (this.container) {\n this.removeDom(this.container);\n // @ts-ignore\n delete this.container;\n }\n if (this.mapsService) {\n // TODO: mapbox AMap 事件同步\n this.mapsService.off('camerachange', this.update);\n this.mapsService.off('viewchange', this.update);\n this.mapsService.off('click', this.onClickClose);\n // @ts-ignore\n delete this.mapsService;\n }\n clearTimeout(this.timeoutInstance);\n this.emit('close');\n return this;\n }\n public isOpen() {\n return !!this.mapsService;\n }\n\n private createContent() {\n if (this.content) {\n DOM.remove(this.content);\n }\n this.content = DOM.create('div', 'l7-popup-content', this.container);\n if (this.popupOption.closeButton) {\n this.closeButton = DOM.create(\n 'button',\n 'l7-popup-close-button',\n this.content,\n );\n\n if (this.popupOption.closeButtonOffsets) {\n // 关闭按钮的偏移\n this.closeButton.style.right =\n this.popupOption.closeButtonOffsets[0] + 'px';\n this.closeButton.style.top =\n this.popupOption.closeButtonOffsets[1] + 'px';\n }\n\n // this.closeButton.type = 'button';\n this.closeButton.setAttribute('aria-label', 'Close popup');\n this.closeButton.innerHTML = '×';\n this.closeButton.addEventListener('click', this.onClickClose);\n }\n }\n\n private creatDom(tagName: string, className: string, container: HTMLElement) {\n const el = window.document.createElement(tagName);\n if (className !== undefined) {\n el.className = className;\n }\n if (container) {\n container.appendChild(el);\n }\n return el;\n }\n\n private removeDom(node: ChildNode) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n\n private getdefault() {\n return {\n closeButton: true,\n closeOnClick: true,\n maxWidth: '240px',\n offsets: [0, 0],\n anchor: anchorType.BOTTOM,\n className: '',\n stopPropagation: true,\n };\n }\n\n private onClickClose(e: Event) {\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n this.remove();\n }\n\n private update() {\n const hasPosition = this.lngLat;\n const { className, maxWidth, anchor } = this.popupOption;\n if (!this.mapsService || !hasPosition || !this.content) {\n return;\n }\n const popupContainer = this.mapsService.getMarkerContainer();\n if (!this.container && popupContainer) {\n this.container = this.creatDom(\n 'div',\n 'l7-popup',\n popupContainer as HTMLElement,\n );\n\n this.tip = this.creatDom('div', 'l7-popup-tip', this.container);\n this.container.appendChild(this.content);\n if (className) {\n className\n .split(' ')\n .forEach((name) => this.container.classList.add(name));\n }\n\n // 高德地图需要阻止事件冒泡 // 测试mapbox 地图不需要添加\n const { stopPropagation } = this.popupOption;\n if (stopPropagation) {\n ['mousemove', 'mousedown', 'mouseup', 'click', 'dblclick'].forEach(\n (type) => {\n this.container.addEventListener(type, (e) => {\n e.stopPropagation();\n });\n },\n );\n }\n\n this.container.style.whiteSpace = 'nowrap';\n }\n if (maxWidth && this.container.style.maxWidth !== maxWidth) {\n this.container.style.maxWidth = maxWidth;\n }\n\n this.updatePosition();\n DOM.setTransform(this.container, `${anchorTranslate[anchor]}`);\n applyAnchorClass(this.container, anchor, 'popup');\n }\n\n private updatePosition() {\n if (!this.mapsService) {\n return;\n }\n const { lng, lat } = this.lngLat;\n const { offsets } = this.popupOption;\n const pos = this.mapsService.lngLatToContainer([lng, lat]);\n this.container.style.left = pos.x + offsets[0] + 'px';\n this.container.style.top = pos.y - offsets[1] + 'px';\n }\n}\n"],"file":"popup.js"}
|