gdmap-utils 1.1.0 → 1.1.2

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/.husky/pre-commit CHANGED
@@ -1 +1 @@
1
- npx lint-staged
1
+ npx lint-staged
package/.prettierrc.json CHANGED
@@ -1,18 +1,18 @@
1
- {
2
- "printWidth": 80,
3
- "tabWidth": 2,
4
- "useTabs": false,
5
- "semi": true,
6
- "singleQuote": true,
7
- "quoteProps": "as-needed",
8
- "jsxSingleQuote": false,
9
- "trailingComma": "es5",
10
- "bracketSpacing": true,
11
- "bracketSameLine": false,
12
- "arrowParens": "avoid",
13
- "requirePragma": false,
14
- "insertPragma": false,
15
- "proseWrap": "preserve",
16
- "htmlWhitespaceSensitivity": "css",
17
- "endOfLine": "auto"
1
+ {
2
+ "printWidth": 80,
3
+ "tabWidth": 2,
4
+ "useTabs": false,
5
+ "semi": true,
6
+ "singleQuote": true,
7
+ "quoteProps": "as-needed",
8
+ "jsxSingleQuote": false,
9
+ "trailingComma": "es5",
10
+ "bracketSpacing": true,
11
+ "bracketSameLine": false,
12
+ "arrowParens": "avoid",
13
+ "requirePragma": false,
14
+ "insertPragma": false,
15
+ "proseWrap": "preserve",
16
+ "htmlWhitespaceSensitivity": "css",
17
+ "endOfLine": "auto"
18
18
  }
package/README.md CHANGED
@@ -1,50 +1,50 @@
1
- 1. 高德地图AMap常用函数:统一管理、调用。
2
- # 基本功能
3
- 1. gdUtils
4
- 1.1 前置: 地图配置保存,初始化操作, plugins
5
- 2.1 地图事件绑定
6
- 3.1 marker部分逻辑耦合在`gdMapUtils`
7
- 2. markerPointerController 名称改为`markerLayer`
8
- 2.1 点位管理:"添加、删除、更新、事件绑定 ( 图层事件管理 )"
9
- 3.1 `markerList`经纬度变化同步更新位置
10
- 4.1 marker激活状态管理
11
- 5.1 图层管理:"图层生命周期、图层销毁、图层事件绑定、图层marker自适应、marker查找"
12
- 3. CollectionPointLayerController `markerClusterLayer`
13
- 1. 图层管理:“显示,隐藏, 销毁, 图层生命周期”
14
- 4. LabelLayerRender 名称更改为`labelMarkerLayer`
15
- > 通过抽象统一的接口,屏蔽地图服务差异,实现一次开发多方运行的目标。(为后续升级留下扩展接口)
16
- ## idea
17
- ```js
18
- //工具库调用方式太奇怪, new GdMapUtils需要在initMap之前
19
- this.gdMapUtils = new GdMapUtils({
20
- version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
21
- plugins: ['AMap.MapType', 'AMap.MoveAnimation'], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
22
- });
23
-
24
- this.map = await this.gdMapUtils.initMap('gisMap', {
25
- zoom: 14, // 初始化地图级别
26
- resizeEnable: true,
27
- rotateEnable: true,
28
- pitchEnable: true,
29
- center: [121.589604, 31.051637],
30
- zooms: [1, 20],
31
- zoom: '13.3',
32
- showLabel: true,
33
- viewMode: '2D',
34
- pitch: 50,
35
- });
36
- // 地图示例已经创建,地图options无需传入,this.map保存着以上信息
37
- ```
38
-
39
- ## 改进点
40
- 1. `new MapUtils()`关联一个地图, `mapUtils`实例对地图进行管理,以取代`linkToExistMap`
41
- 2. 高德地图使用不太了解, 一些函数的调用方式不是很熟悉
42
- 3. 考虑将`overlayGroupManagerMap`从`gdMapUtils`中分离出来, 作为一个独立的类`OverlayGroupManager`,他用于管理图层
43
- 4. 地图初始化从`gdMapUtils`中分离出来, 作为一个独立的函数`loadMapDep`,引入地图相关依赖
44
- 5. 为什么要引入`OverlayGroupManger.js` ,marker功能扩展让其与labelMarker保持一致,`Overlay`可以管理所有覆盖物,他内部包含许多`marker`代码 (单一性原则违反掉)
45
- 6. `this.layerInstance = gdMapUtils.getOverlayGroupManager(this.config.className); // 获取图层对象` 图层对象存放GdMapUtils中是否合理
46
- 8. ts实现抽象类,接口约束图层类
47
- 7. 工具库实现自定义事件, 用于派发自定义事件, 如`markerShowed`、`markerMouseover`等
48
- 1. Vue有全局过滤器,插件, 工具库同样支持,你注册个事件,它会默认为所有map实例绑定
49
- git stash save "高德库作为同等依赖" (记得取出来)
50
-
1
+ 1. 高德地图AMap常用函数:统一管理、调用。
2
+ # 基本功能
3
+ 1. gdUtils
4
+ 1.1 前置: 地图配置保存,初始化操作, plugins
5
+ 2.1 地图事件绑定
6
+ 3.1 marker部分逻辑耦合在`gdMapUtils`
7
+ 2. markerPointerController 名称改为`markerLayer`
8
+ 2.1 点位管理:"添加、删除、更新、事件绑定 ( 图层事件管理 )"
9
+ 3.1 `markerList`经纬度变化同步更新位置
10
+ 4.1 marker激活状态管理
11
+ 5.1 图层管理:"图层生命周期、图层销毁、图层事件绑定、图层marker自适应、marker查找"
12
+ 3. CollectionPointLayerController `markerClusterLayer`
13
+ 1. 图层管理:“显示,隐藏, 销毁, 图层生命周期”
14
+ 4. LabelLayerRender 名称更改为`labelMarkerLayer`
15
+ > 通过抽象统一的接口,屏蔽地图服务差异,实现一次开发多方运行的目标。(为后续升级留下扩展接口)
16
+ ## idea
17
+ ```js
18
+ //工具库调用方式太奇怪, new GdMapUtils需要在initMap之前
19
+ this.gdMapUtils = new GdMapUtils({
20
+ version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
21
+ plugins: ['AMap.MapType', 'AMap.MoveAnimation'], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
22
+ });
23
+
24
+ this.map = await this.gdMapUtils.initMap('gisMap', {
25
+ zoom: 14, // 初始化地图级别
26
+ resizeEnable: true,
27
+ rotateEnable: true,
28
+ pitchEnable: true,
29
+ center: [121.589604, 31.051637],
30
+ zooms: [1, 20],
31
+ zoom: '13.3',
32
+ showLabel: true,
33
+ viewMode: '2D',
34
+ pitch: 50,
35
+ });
36
+ // 地图示例已经创建,地图options无需传入,this.map保存着以上信息
37
+ ```
38
+
39
+ ## 改进点
40
+ 1. `new MapUtils()`关联一个地图, `mapUtils`实例对地图进行管理,以取代`linkToExistMap`
41
+ 2. 高德地图使用不太了解, 一些函数的调用方式不是很熟悉
42
+ 3. 考虑将`overlayGroupManagerMap`从`gdMapUtils`中分离出来, 作为一个独立的类`OverlayGroupManager`,他用于管理图层
43
+ 4. 地图初始化从`gdMapUtils`中分离出来, 作为一个独立的函数`loadMapDep`,引入地图相关依赖
44
+ 5. 为什么要引入`OverlayGroupManger.js` ,marker功能扩展让其与labelMarker保持一致,`Overlay`可以管理所有覆盖物,他内部包含许多`marker`代码 (单一性原则违反掉)
45
+ 6. `this.layerInstance = gdMapUtils.getOverlayGroupManager(this.config.className); // 获取图层对象` 图层对象存放GdMapUtils中是否合理
46
+ 8. ts实现抽象类,接口约束图层类
47
+ 7. 工具库实现自定义事件, 用于派发自定义事件, 如`markerShowed`、`markerMouseover`等
48
+ 1. Vue有全局过滤器,插件, 工具库同样支持,你注册个事件,它会默认为所有map实例绑定
49
+ git stash save "高德库作为同等依赖" (记得取出来)
50
+
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@amap/amap-jsapi-loader")):"function"==typeof define&&define.amd?define("MapUtils",["@amap/amap-jsapi-loader"],t):"object"==typeof exports?exports.MapUtils=t(require("@amap/amap-jsapi-loader")):e.MapUtils=t(e.AMapLoader)}(this,e=>(()=>{"use strict";var t={591:t=>{t.exports=e}},r={};function n(e){var a=r[e];if(void 0!==a)return a.exports;var o=r[e]={exports:{}};return t[e](o,o.exports,n),o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};n.r(a),n.d(a,{MapUtils:()=>x,createMapUtils:()=>A,initMapSource:()=>k});var o=n(591),i=n.n(o);const s=function(){function e(){}return e.loadScript=function(e){return t=this,r=void 0,a=function(){return function(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=s(0),i.throw=s(1),i.return=s(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(l){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&s[0]?n.return:s[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,s[1])).done)return a;switch(n=0,a&&(s=[2&s[0],a.value]),s[0]){case 0:case 1:a=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,n=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!((a=(a=o.trys).length>0&&a[a.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!a||s[1]>a[0]&&s[1]<a[3])){o.label=s[1];break}if(6===s[0]&&o.label<a[1]){o.label=a[1],a=s;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(s);break}a[2]&&o.ops.pop(),o.trys.pop();continue}s=t.call(e,o)}catch(e){s=[6,e],n=0}finally{r=a=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}(this,function(t){return[2,i().load(e).then(function(e){return e}).catch(function(e){throw console.error(e),new Error(e)})]})},new((n=void 0)||(n=Promise))(function(e,o){function i(e){try{l(a.next(e))}catch(e){o(e)}}function s(e){try{l(a.throw(e))}catch(e){o(e)}}function l(t){var r;t.done?e(t.value):(r=t.value,r instanceof n?r:new n(function(e){e(r)})).then(i,s)}l((a=a.apply(t,r||[])).next())});var t,r,n,a},e}();var l=function(){return l=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var a in t=arguments[r])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},l.apply(this,arguments)};const y=function(e){return new AMap.Marker(l({},e))},c=function(e){return new AMap.Icon({size:this.Size.apply(this,e.size),image:e.image,imageSize:this.Size.apply(this,e.imageSize),imageOffset:this.Pixel.apply(this,e.imageOffset)})},p=function(e,t){return new AMap.Size(e,t)},u=function(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return new((e=AMap.Pixel).bind.apply(e,function(e,t,r){if(r||2===arguments.length)for(var n,a=0,o=t.length;a<o;a++)!n&&a in t||(n||(n=Array.prototype.slice.call(t,0,a)),n[a]=t[a]);return e.concat(n||Array.prototype.slice.call(t))}([void 0],t,!1)))},f=function(e,t,r){return new AMap.LngLat(e,t,r)};var h=function(){return h=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var a in t=arguments[r])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},h.apply(this,arguments)};const v=function(){function e(e,t){this.events=new Map,this.map=e,this.rawLayer=new AMap.LabelsLayer(h({collision:!0,opacity:1,zIndex:120,allowCollision:!0},t)),this.map.add(this.rawLayer)}return e.convertOverlayDataToOvlOpts=function(e,t,r,n,a){var o,i,s,l,y=e.overlayData,c=y.lon,p=y.lat,u=y.extData,f=y.title,v=n(e,t,a),d=h({position:[c,p],extData:u},v);if(e.labelShowed)d.text=null!==(i=d.text)&&void 0!==i?i:{content:f,direction:"top",style:{fontSize:16,strokeWidth:5},zooms:[5,20]};else{var w=null!==(o=d.text)&&void 0!==o?o:{content:f,direction:"top",style:{fontSize:16,strokeWidth:5},zooms:[5,20]};w.content="",d.text=w}var L=r(e);return d.icon=null!==(s=d.icon)&&void 0!==s?s:{image:"",size:[25,34],anchor:"bottom-center"},null===(l=d.icon)||void 0===l||(l.image=L),d},e.prototype.bindEventOverlay=function(e,t){"function"==typeof t?(this.on(e,t),this.events.set(e,t)):x.error("Please provide an event callback function")},e.prototype.addOverlayBindEvent=function(e){this.events.forEach(function(t,r){e.on(r,t)})},e.prototype.createOverlays=function(e){var t=this,r=e.map(function(e){var r=new AMap.LabelMarker(e);return t.addOverlayBindEvent(r),r});return this.rawLayer.add(r),r},e.prototype.add=function(e){this.createOverlays(e)},e.prototype.remove=function(e){this.rawLayer.remove(e)},e.prototype.hide=function(){this.rawLayer.hide()},e.prototype.show=function(){this.rawLayer.show()},e.prototype.getAllOverlay=function(){return this.rawLayer.getAllOverlays()},e.prototype.destroy=function(){this.rawLayer.clear(),this.map.remove(this.rawLayer)},e.prototype.reload=function(){this.rawLayer.clear()},e.prototype.clearAllOvl=function(){this.rawLayer.clear()},e.prototype.overlayFitMap=function(){var e=this.getAllOverlay();this.map.setFitView(e)},e.prototype.findLayerOverlay=function(e){return e?this.getAllOverlay().find(function(t){return t.getExtData().id===e})||null:(x.error("Please provide a markerId"),null)},e.prototype.refreshOverlayIcon=function(e,t){e?e.setIcon(t):x.error("labelMarker is not found")},e.prototype.refreshOverlayLabel=function(e,t){if(e)if(t)e.setText(t);else{var r=e.getText();e.setText(h(h({},r),{content:""}))}else x.error("labelMarker is not found")},e.prototype.on=function(e,t){this.getAllOverlay().forEach(function(r){r.on(e,t)})},e}();var d=function(){return d=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var a in t=arguments[r])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},d.apply(this,arguments)},w=function(){function e(e){this.rawLayer=new AMap.OverlayGroup,this.events=new Map,this.map=e,this.map.add(this.rawLayer)}return e.convertOverlayDataToOvlOpts=function(e,t,r,n,a){var o,i,s=e.overlayData,l=s.lon,y=s.lat,c=s.extData,p=n(e,t,a),u=d({position:[l,y],extData:c},p);e.labelShowed?u.label=null!==(o=u.label)&&void 0!==o?o:{content:'<div class="markerLayer">'.concat(e.overlayData.title,"</div>"),offset:a.Pixel(0,-5),direction:"top"}:u.label=void 0,u.icon=null!==(i=u.icon)&&void 0!==i?i:a.createIcon({size:[25,34],image:"",imageSize:[25,34],imageOffset:[0,0]});var f=r(e);return"string"==typeof u.icon?u.icon=f:u.icon.setImage(f),u},e.prototype.bindEventOverlay=function(e,t){"function"==typeof t?(this.rawLayer.on(e,t),this.events.set(e,t)):x.error("Please provide an event callback function")},e.prototype.addOverlayBindEvent=function(e){this.events.forEach(function(t,r){e.on(r,t)})},e.prototype.createOverlays=function(e){var t=e.map(function(e){return x.createAMapMarker(e)});return this.rawLayer.addOverlays(t),t},e.prototype.add=function(e){this.createOverlays(e)},e.prototype.remove=function(e){this.rawLayer.removeOverlays(e)},e.prototype.hide=function(){this.rawLayer.hide()},e.prototype.show=function(){this.rawLayer.show()},e.prototype.getAllOverlay=function(){return this.rawLayer.getOverlays()},e.prototype.destroy=function(){this.rawLayer.clearOverlays(),this.rawLayer.setMap(null)},e.prototype.reload=function(){this.rawLayer.clearOverlays()},e.prototype.clearAllOvl=function(){this.rawLayer.clearOverlays()},e.prototype.overlayFitMap=function(){var e=this.getAllOverlay();this.map.setFitView(e)},e.prototype.findLayerOverlay=function(e){if(e)return this.getAllOverlay().find(function(t){return t.getExtData().id===e})||null;x.error("Please provide a markerId")},e.prototype.refreshOverlayIcon=function(e,t){if(!e)return x.error("marker is not found");e.setIcon(t)},e.prototype.refreshOverlayLabel=function(e,t){if(!e)return x.error("marker is not found");if(t)e.setLabel(t);else{var r=e.getLabel();e.setLabel(d(d({},r),{content:""}))}},e}();const L=w;var O=function(){function e(t,r){this.layerVisible=!0;var n=t.layerType,a=t.layerName,o=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]])}return r}(t,["layerType","layerName"]),i=e.layerClassMap.get(n);if(!i)throw new Error("[BaseMarkerLayer Error]: Invalid layer type ".concat(n));this.rawLayerIns=new i(r.map,t.overlayLayer),this.layerName=a,this.mapUtils=r,this.overlayList=t.overlayList,this.getIconUrl=t.getIconUrl,this.getOverlayOpts=t.getOverlayOpts,this.layerType=t.layerType,Object.assign(this,o),this.initLayer()}return e.registerLayer=function(t,r){"string"==typeof t&&"function"==typeof r?e.layerClassMap.set(t,r):x.error("[LayerManager Error]: Invalid layer type or layer class")},e.prototype.initLayer=function(){this.createOverlays(this.overlayList)},e.prototype.convertOverlayDataToOpts=function(t){var r=this,n=e.layerClassMap.get(this.layerType);return t.map(function(e,t){return n.convertOverlayDataToOvlOpts(e,t,r.getIconUrl,r.getOverlayOpts,x)})},e.prototype.createOverlays=function(e){var t=this.convertOverlayDataToOpts(e);return this.rawLayerIns.createOverlays(t)},e.prototype.overlayFitMap=function(){this.rawLayerIns.overlayFitMap()},e.prototype.bindEventOverlays=function(e,t){this.rawLayerIns.bindEventOverlay(e,t)},e.prototype.hide=function(){this.layerVisible=!1,this.rawLayerIns.hide()},e.prototype.show=function(){this.layerVisible=!0,this.rawLayerIns.show()},e.prototype.getAllOverlay=function(){return function(e,t,r){if(r||2===arguments.length)for(var n,a=0,o=t.length;a<o;a++)!n&&a in t||(n||(n=Array.prototype.slice.call(t,0,a)),n[a]=t[a]);return e.concat(n||Array.prototype.slice.call(t))}([],this.rawLayerIns.getAllOverlay(),!0)},e.prototype.destroy=function(){this.mapUtils.removeLayer(this),this.rawLayerIns.destroy(),this.overlayList=[]},e.prototype.clearAllOverlay=function(){this.overlayList=[],this.rawLayerIns.clearAllOvl()},e.prototype.reload=function(){this.rawLayerIns.reload(),this.createOverlays(this.overlayList)},e.prototype.findLayerOverlay=function(e){return this.rawLayerIns.findLayerOverlay(e)},e.prototype.add=function(e){var t,r=this.convertOverlayDataToOpts(e);(t=this.overlayList).push.apply(t,e),(this.rawLayerIns instanceof L||this.rawLayerIns instanceof v)&&this.rawLayerIns.add(r)},e.prototype.remove=function(e){var t=this;if(this.rawLayerIns instanceof L)if(e[0]instanceof AMap.Marker){var r=e.map(function(e){return e.getExtData().id});this.overlayList=this.overlayList.filter(function(e){return!r.includes(e.id)}),this.rawLayerIns.remove(e)}else{var n=e.map(function(e){return t.findLayerOverlay(e)}).filter(function(e){return!!e});this.rawLayerIns.remove(n),this.overlayList=this.overlayList.filter(function(t){return!e.includes(t.id)})}else if(this.rawLayerIns instanceof v)if(e[0]instanceof AMap.LabelMarker){var a=e.map(function(e){return e.getExtData().id});this.overlayList=this.overlayList.filter(function(e){return!a.includes(e.id)}),this.rawLayerIns.remove(e)}else n=e.map(function(e){return t.findLayerOverlay(e)}).filter(function(e){return!!e}),this.rawLayerIns.remove(n),this.overlayList=this.overlayList.filter(function(t){return!e.includes(t.id)})},e.prototype.refreshOverlayIcon=function(t){var r=this.overlayList.findIndex(function(e){return e.id===t});if(-1===r)return x.error("[BaseMarkerLayer Error]: Invalid overlayId ".concat(t));var n=e.layerClassMap.get(this.layerType);if(this.rawLayerIns instanceof L||this.rawLayerIns instanceof v){var a,o=this.rawLayerIns.findLayerOverlay(t),i=n.convertOverlayDataToOvlOpts(this.overlayList[r],r,this.getIconUrl,this.getOverlayOpts,x),s=this.getIconUrl(this.overlayList[r]);this.rawLayerIns instanceof L?("string"==typeof(a=i.icon)?a=s:a.setImage(s),this.rawLayerIns.refreshOverlayIcon(o,a)):((a=i.icon).image=s,this.rawLayerIns.refreshOverlayIcon(o,a))}},e.prototype.refreshOverlayLabel=function(t,r){var n=this.overlayList.findIndex(function(e){return e.id===t});if(-1===n)return x.error("[Layer Error]: Invalid overlayId ".concat(t));var a=e.layerClassMap.get(this.layerType);if(this.rawLayerIns instanceof L||this.rawLayerIns instanceof v){var o=this.rawLayerIns.findLayerOverlay(t);this.overlayList.find(function(e){return e.id===t}).labelShowed=r;var i=a.convertOverlayDataToOvlOpts(this.overlayList[n],n,this.getIconUrl,this.getOverlayOpts,x);this.rawLayerIns instanceof L?r?this.rawLayerIns.refreshOverlayLabel(o,i.label):this.rawLayerIns.refreshOverlayLabel(o):r?this.rawLayerIns.refreshOverlayLabel(o,i.text):this.rawLayerIns.refreshOverlayLabel(o)}},e.prototype.getRawLayer=function(){return this.rawLayerIns.rawLayer},e.layerClassMap=new Map,e}();O.registerLayer("markerLayer",L),O.registerLayer("labelMarkerLayer",v);const b=O,m=function(){function e(){this.layers=new Map}return e.prototype.addLayer=function(e){if(this.hasLayer(e))throw new Error('Layer with name "'.concat(e.layerName,'" already exists'));this.layers.set(e.layerName,e)},e.prototype.removeLayer=function(e){this.layers.delete(e.layerName)},e.prototype.show=function(e){var t=this.layers.get(e);t&&t.show()},e.prototype.hide=function(e){var t=this.layers.get(e);t&&t.hide()},e.prototype.showAll=function(){this.layers.forEach(function(e){return e.show()})},e.prototype.hideAll=function(){this.layers.forEach(function(e){return e.hide()})},e.prototype.reload=function(){this.layers.forEach(function(e){return e.reload()})},e.prototype.hasLayer=function(e){return this.layers.has(e.layerName)},e}();var g=function(e,t,r,n){return new(r||(r=Promise))(function(a,o){function i(e){try{l(n.next(e))}catch(e){o(e)}}function s(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(i,s)}l((n=n.apply(e,t||[])).next())})},I=function(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=s(0),i.throw=s(1),i.return=s(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(l){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&s[0]?n.return:s[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,s[1])).done)return a;switch(n=0,a&&(s=[2&s[0],a.value]),s[0]){case 0:case 1:a=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,n=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!((a=(a=o.trys).length>0&&a[a.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!a||s[1]>a[0]&&s[1]<a[3])){o.label=s[1];break}if(6===s[0]&&o.label<a[1]){o.label=a[1],a=s;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(s);break}a[2]&&o.ops.pop(),o.trys.pop();continue}s=t.call(e,o)}catch(e){s=[6,e],n=0}finally{r=a=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}},M=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]])}return r},x=function(){function e(t,r){if(this.LayerManager=new m,"object"!=typeof r||!("Map"in r))throw e.error("AMap is not exist");if("mapIns"in t&&t.mapIns instanceof r.Map){t.mapIns;var n=M(t,["mapIns"]);this.map=t.mapIns,this.options=n}else{if(!("mountSelector"in t))throw e.error("mountSelector is not exist");this.options=t;var a=t.mountSelector;n=M(t,["mountSelector"]),this.map=this.initMap(a,n)}this.bindMapClickEvent()}return e.prototype.bindMapClickEvent=function(){this.map.on("click",function(){})},e.prototype.initMap=function(e,t){return new window.AMap.Map(e,t)},e.prototype.createLayer=function(e){var t=new b(e,this);return this.LayerManager.addLayer(t),t},e.prototype.removeLayer=function(t){this.LayerManager.hasLayer(t)?this.LayerManager.removeLayer(t):e.error("".concat(t.layerName," is not exist"))},e.prototype.setFitView=function(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];(e=this.map).setFitView.apply(e,t)},e.error=function(e){console.error("[MapUtils Error]:".concat(e))},e.createAMapMarker=y,e.createIcon=c,e.Size=p,e.Pixel=u,e.LngLat=f,e}();function A(e,t){return g(this,void 0,void 0,function(){var r;return I(this,function(n){switch(n.label){case 0:return r=window.AMap,t?[4,k(t)]:[3,2];case 1:r=n.sent(),n.label=2;case 2:return[2,new x(e,r)]}})})}function k(e){return g(this,void 0,void 0,function(){return I(this,function(t){switch(t.label){case 0:return[4,s.loadScript(e)];case 1:return[2,t.sent()]}})})}return a})());
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("MapUtils",[],t):"object"==typeof exports?exports.MapUtils=t():e.MapUtils=t()}(this,()=>(()=>{"use strict";var e={923:function(e){e.exports=function(){function e(e){var n=[];return e.AMapUI&&n.push(t(e.AMapUI)),e.Loca&&n.push(r(e.Loca)),Promise.all(n)}function t(e){return new Promise(function(t,r){var a=[];if(e.plugins)for(var l=0;l<e.plugins.length;l+=1)-1==o.AMapUI.plugins.indexOf(e.plugins[l])&&a.push(e.plugins[l]);if(i.AMapUI===n.failed)r("前次请求 AMapUI 失败");else if(i.AMapUI===n.notload){i.AMapUI=n.loading,o.AMapUI.version=e.version||o.AMapUI.version,l=o.AMapUI.version;var c=document.body||document.head,p=document.createElement("script");p.type="text/javascript",p.src="https://webapi.amap.com/ui/"+l+"/main.js",p.onerror=function(e){i.AMapUI=n.failed,r("请求 AMapUI 失败")},p.onload=function(){if(i.AMapUI=n.loaded,a.length)window.AMapUI.loadUI(a,function(){for(var e=0,r=a.length;e<r;e++){var n=a[e].split("/").slice(-1)[0];window.AMapUI[n]=arguments[e]}for(t();s.AMapUI.length;)s.AMapUI.splice(0,1)[0]()});else for(t();s.AMapUI.length;)s.AMapUI.splice(0,1)[0]()},c.appendChild(p)}else i.AMapUI===n.loaded?e.version&&e.version!==o.AMapUI.version?r("不允许多个版本 AMapUI 混用"):a.length?window.AMapUI.loadUI(a,function(){for(var e=0,r=a.length;e<r;e++){var n=a[e].split("/").slice(-1)[0];window.AMapUI[n]=arguments[e]}t()}):t():e.version&&e.version!==o.AMapUI.version?r("不允许多个版本 AMapUI 混用"):s.AMapUI.push(function(e){e?r(e):a.length?window.AMapUI.loadUI(a,function(){for(var e=0,r=a.length;e<r;e++){var n=a[e].split("/").slice(-1)[0];window.AMapUI[n]=arguments[e]}t()}):t()})})}function r(e){return new Promise(function(t,r){if(i.Loca===n.failed)r("前次请求 Loca 失败");else if(i.Loca===n.notload){i.Loca=n.loading,o.Loca.version=e.version||o.Loca.version;var a=o.Loca.version,l=o.AMap.version.startsWith("2"),c=a.startsWith("2");if(l&&!c||!l&&c)r("JSAPI 与 Loca 版本不对应!!");else{l=o.key,c=document.body||document.head;var p=document.createElement("script");p.type="text/javascript",p.src="https://webapi.amap.com/loca?v="+a+"&key="+l,p.onerror=function(e){i.Loca=n.failed,r("请求 AMapUI 失败")},p.onload=function(){for(i.Loca=n.loaded,t();s.Loca.length;)s.Loca.splice(0,1)[0]()},c.appendChild(p)}}else i.Loca===n.loaded?e.version&&e.version!==o.Loca.version?r("不允许多个版本 Loca 混用"):t():e.version&&e.version!==o.Loca.version?r("不允许多个版本 Loca 混用"):s.Loca.push(function(e){e?r(e):r()})})}if(!window)throw Error("AMap JSAPI can only be used in Browser.");var n,a;(a=n||(n={})).notload="notload",a.loading="loading",a.loaded="loaded",a.failed="failed";var o={key:"",AMap:{version:"1.4.15",plugins:[]},AMapUI:{version:"1.1",plugins:[]},Loca:{version:"1.3.2"}},i={AMap:n.notload,AMapUI:n.notload,Loca:n.notload},s={AMap:[],AMapUI:[],Loca:[]},l=[];return{load:function(t){return new Promise(function(r,a){if(i.AMap==n.failed)a("");else if(i.AMap==n.notload){var s=t.key,c=t.version,p=t.plugins;s?(window.AMap&&"lbs.amap.com"!==location.host&&a("禁止多种API加载方式混用"),o.key=s,o.AMap.version=c||o.AMap.version,o.AMap.plugins=p||o.AMap.plugins,i.AMap=n.loading,c=document.body||document.head,window.___onAPILoaded=function(o){if(delete window.___onAPILoaded,o)i.AMap=n.failed,a(o);else for(i.AMap=n.loaded,e(t).then(function(){r(window.AMap)}).catch(a);l.length;)l.splice(0,1)[0]()},(p=document.createElement("script")).type="text/javascript",p.src="https://webapi.amap.com/maps?callback=___onAPILoaded&v="+o.AMap.version+"&key="+s+"&plugin="+o.AMap.plugins.join(","),p.onerror=function(e){i.AMap=n.failed,a(e)},c.appendChild(p)):a("请填写key")}else if(i.AMap==n.loaded)if(t.key&&t.key!==o.key)a("多个不一致的 key");else if(t.version&&t.version!==o.AMap.version)a("不允许多个版本 JSAPI 混用");else{if(s=[],t.plugins)for(c=0;c<t.plugins.length;c+=1)-1==o.AMap.plugins.indexOf(t.plugins[c])&&s.push(t.plugins[c]);s.length?window.AMap.plugin(s,function(){e(t).then(function(){r(window.AMap)}).catch(a)}):e(t).then(function(){r(window.AMap)}).catch(a)}else if(t.key&&t.key!==o.key)a("多个不一致的 key");else if(t.version&&t.version!==o.AMap.version)a("不允许多个版本 JSAPI 混用");else{var y=[];if(t.plugins)for(c=0;c<t.plugins.length;c+=1)-1==o.AMap.plugins.indexOf(t.plugins[c])&&y.push(t.plugins[c]);!function(e){"function"==typeof e&&(i.AMap===n.loaded?e(window.AMap):l.push(e))}(function(){y.length?window.AMap.plugin(y,function(){e(t).then(function(){r(window.AMap)}).catch(a)}):e(t).then(function(){r(window.AMap)}).catch(a)})}})},reset:function(){delete window.AMap,delete window.AMapUI,delete window.Loca,o={key:"",AMap:{version:"1.4.15",plugins:[]},AMapUI:{version:"1.1",plugins:[]},Loca:{version:"1.3.2"}},i={AMap:n.notload,AMapUI:n.notload,Loca:n.notload},s={AMap:[],AMapUI:[],Loca:[]}}}}()}},t={};function r(n){var a=t[n];if(void 0!==a)return a.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{MapUtils:()=>A,createMapUtils:()=>b,initMapSource:()=>x});var a=r(923),o=r.n(a);const i=function(){function e(){}return e.loadScript=function(e){return t=this,r=void 0,a=function(){return function(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=s(0),i.throw=s(1),i.return=s(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(l){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&s[0]?n.return:s[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,s[1])).done)return a;switch(n=0,a&&(s=[2&s[0],a.value]),s[0]){case 0:case 1:a=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,n=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!((a=(a=o.trys).length>0&&a[a.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!a||s[1]>a[0]&&s[1]<a[3])){o.label=s[1];break}if(6===s[0]&&o.label<a[1]){o.label=a[1],a=s;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(s);break}a[2]&&o.ops.pop(),o.trys.pop();continue}s=t.call(e,o)}catch(e){s=[6,e],n=0}finally{r=a=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}(this,function(t){return[2,o().load(e).then(function(e){return e}).catch(function(e){throw console.error(e),new Error(e)})]})},new((n=void 0)||(n=Promise))(function(e,o){function i(e){try{l(a.next(e))}catch(e){o(e)}}function s(e){try{l(a.throw(e))}catch(e){o(e)}}function l(t){var r;t.done?e(t.value):(r=t.value,r instanceof n?r:new n(function(e){e(r)})).then(i,s)}l((a=a.apply(t,r||[])).next())});var t,r,n,a},e}();var s=function(){return s=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var a in t=arguments[r])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},s.apply(this,arguments)};const l=function(e){return new AMap.Marker(s({},e))},c=function(e){return new AMap.Icon({size:this.Size.apply(this,e.size),image:e.image,imageSize:this.Size.apply(this,e.imageSize),imageOffset:this.Pixel.apply(this,e.imageOffset)})},p=function(e,t){return new AMap.Size(e,t)},y=function(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return new((e=AMap.Pixel).bind.apply(e,function(e,t,r){if(r||2===arguments.length)for(var n,a=0,o=t.length;a<o;a++)!n&&a in t||(n||(n=Array.prototype.slice.call(t,0,a)),n[a]=t[a]);return e.concat(n||Array.prototype.slice.call(t))}([void 0],t,!1)))},u=function(e,t,r){return new AMap.LngLat(e,t,r)};var f=function(){return f=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var a in t=arguments[r])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},f.apply(this,arguments)};const h=function(){function e(e,t){this.events=new Map,this.map=e,this.rawLayer=new AMap.LabelsLayer(f({collision:!0,opacity:1,zIndex:120,allowCollision:!0},t)),this.map.add(this.rawLayer)}return e.convertOverlayDataToOvlOpts=function(e,t,r,n,a){var o,i,s,l,c=e.overlayData,p=c.lon,y=c.lat,u=c.extData,h=c.title,v=n(e,t,a),d=f({position:[p,y],extData:u},v);if(e.labelShowed)d.text=null!==(i=d.text)&&void 0!==i?i:{content:h,direction:"top",style:{fontSize:16,strokeWidth:5},zooms:[5,20]};else{var w=null!==(o=d.text)&&void 0!==o?o:{content:h,direction:"top",style:{fontSize:16,strokeWidth:5},zooms:[5,20]};w.content="",d.text=w}var L=r(e);return d.icon=null!==(s=d.icon)&&void 0!==s?s:{image:"",size:[25,34],anchor:"bottom-center"},null===(l=d.icon)||void 0===l||(l.image=L),d},e.prototype.bindEventOverlay=function(e,t){"function"==typeof t?(this.on(e,t),this.events.set(e,t)):A.error("Please provide an event callback function")},e.prototype.addOverlayBindEvent=function(e){this.events.forEach(function(t,r){e.on(r,t)})},e.prototype.createOverlays=function(e){var t=this,r=e.map(function(e){var r=new AMap.LabelMarker(e);return t.addOverlayBindEvent(r),r});return this.rawLayer.add(r),r},e.prototype.add=function(e){this.createOverlays(e)},e.prototype.remove=function(e){this.rawLayer.remove(e)},e.prototype.hide=function(){this.rawLayer.hide()},e.prototype.show=function(){this.rawLayer.show()},e.prototype.getAllOverlay=function(){return this.rawLayer.getAllOverlays()},e.prototype.destroy=function(){this.rawLayer.clear(),this.map.remove(this.rawLayer)},e.prototype.reload=function(){this.rawLayer.clear()},e.prototype.clearAllOvl=function(){this.rawLayer.clear()},e.prototype.overlayFitMap=function(){var e=this.getAllOverlay();this.map.setFitView(e)},e.prototype.findLayerOverlay=function(e){return e?this.getAllOverlay().find(function(t){return t.getExtData().id===e})||null:(A.error("Please provide a markerId"),null)},e.prototype.refreshOverlayIcon=function(e,t){e?e.setIcon(t):A.error("labelMarker is not found")},e.prototype.refreshOverlayLabel=function(e,t){if(e)if(t)e.setText(t);else{var r=e.getText();e.setText(f(f({},r),{content:""}))}else A.error("labelMarker is not found")},e.prototype.on=function(e,t){this.getAllOverlay().forEach(function(r){r.on(e,t)})},e}();var v=function(){return v=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var a in t=arguments[r])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},v.apply(this,arguments)},d=function(){function e(e){this.rawLayer=new AMap.OverlayGroup,this.events=new Map,this.map=e,this.map.add(this.rawLayer)}return e.convertOverlayDataToOvlOpts=function(e,t,r,n,a){var o,i,s=e.overlayData,l=s.lon,c=s.lat,p=s.extData,y=n(e,t,a),u=v({position:[l,c],extData:p},y);e.labelShowed?u.label=null!==(o=u.label)&&void 0!==o?o:{content:'<div class="markerLayer">'.concat(e.overlayData.title,"</div>"),offset:a.Pixel(0,-5),direction:"top"}:u.label=void 0,u.icon=null!==(i=u.icon)&&void 0!==i?i:a.createIcon({size:[25,34],image:"",imageSize:[25,34],imageOffset:[0,0]});var f=r(e);return"string"==typeof u.icon?u.icon=f:u.icon.setImage(f),u},e.prototype.bindEventOverlay=function(e,t){"function"==typeof t?(this.rawLayer.on(e,t),this.events.set(e,t)):A.error("Please provide an event callback function")},e.prototype.addOverlayBindEvent=function(e){this.events.forEach(function(t,r){e.on(r,t)})},e.prototype.createOverlays=function(e){var t=e.map(function(e){return A.createAMapMarker(e)});return this.rawLayer.addOverlays(t),t},e.prototype.add=function(e){this.createOverlays(e)},e.prototype.remove=function(e){this.rawLayer.removeOverlays(e)},e.prototype.hide=function(){this.rawLayer.hide()},e.prototype.show=function(){this.rawLayer.show()},e.prototype.getAllOverlay=function(){return this.rawLayer.getOverlays()},e.prototype.destroy=function(){this.rawLayer.clearOverlays(),this.rawLayer.setMap(null)},e.prototype.reload=function(){this.rawLayer.clearOverlays()},e.prototype.clearAllOvl=function(){this.rawLayer.clearOverlays()},e.prototype.overlayFitMap=function(){var e=this.getAllOverlay();this.map.setFitView(e)},e.prototype.findLayerOverlay=function(e){if(e)return this.getAllOverlay().find(function(t){return t.getExtData().id===e})||null;A.error("Please provide a markerId")},e.prototype.refreshOverlayIcon=function(e,t){if(!e)return A.error("marker is not found");e.setIcon(t)},e.prototype.refreshOverlayLabel=function(e,t){if(!e)return A.error("marker is not found");if(t)e.setLabel(t);else{var r=e.getLabel();e.setLabel(v(v({},r),{content:""}))}},e}();const w=d;var L=function(){function e(t,r){this.layerVisible=!0;var n=t.layerType,a=t.layerName,o=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]])}return r}(t,["layerType","layerName"]),i=e.layerClassMap.get(n);if(!i)throw new Error("[BaseMarkerLayer Error]: Invalid layer type ".concat(n));this.rawLayerIns=new i(r.map,t.overlayLayer),this.layerName=a,this.mapUtils=r,this.overlayList=t.overlayList,this.getIconUrl=t.getIconUrl,this.getOverlayOpts=t.getOverlayOpts,this.layerType=t.layerType,Object.assign(this,o),this.initLayer()}return e.registerLayer=function(t,r){"string"==typeof t&&"function"==typeof r?e.layerClassMap.set(t,r):A.error("[LayerManager Error]: Invalid layer type or layer class")},e.prototype.initLayer=function(){this.createOverlays(this.overlayList)},e.prototype.convertOverlayDataToOpts=function(t){var r=this,n=e.layerClassMap.get(this.layerType);return t.map(function(e,t){return n.convertOverlayDataToOvlOpts(e,t,r.getIconUrl,r.getOverlayOpts,A)})},e.prototype.createOverlays=function(e){var t=this.convertOverlayDataToOpts(e);return this.rawLayerIns.createOverlays(t)},e.prototype.overlayFitMap=function(){this.rawLayerIns.overlayFitMap()},e.prototype.bindEventOverlays=function(e,t){this.rawLayerIns.bindEventOverlay(e,t)},e.prototype.hide=function(){this.layerVisible=!1,this.rawLayerIns.hide()},e.prototype.show=function(){this.layerVisible=!0,this.rawLayerIns.show()},e.prototype.getAllOverlay=function(){return function(e,t,r){if(r||2===arguments.length)for(var n,a=0,o=t.length;a<o;a++)!n&&a in t||(n||(n=Array.prototype.slice.call(t,0,a)),n[a]=t[a]);return e.concat(n||Array.prototype.slice.call(t))}([],this.rawLayerIns.getAllOverlay(),!0)},e.prototype.destroy=function(){this.mapUtils.removeLayer(this),this.rawLayerIns.destroy(),this.overlayList=[]},e.prototype.clearAllOverlay=function(){this.overlayList=[],this.rawLayerIns.clearAllOvl()},e.prototype.reload=function(){this.rawLayerIns.reload(),this.createOverlays(this.overlayList)},e.prototype.findLayerOverlay=function(e){return this.rawLayerIns.findLayerOverlay(e)},e.prototype.add=function(e){var t,r=this.convertOverlayDataToOpts(e);(t=this.overlayList).push.apply(t,e),(this.rawLayerIns instanceof w||this.rawLayerIns instanceof h)&&this.rawLayerIns.add(r)},e.prototype.remove=function(e){var t=this;if(this.rawLayerIns instanceof w)if(e[0]instanceof AMap.Marker){var r=e.map(function(e){return e.getExtData().id});this.overlayList=this.overlayList.filter(function(e){return!r.includes(e.id)}),this.rawLayerIns.remove(e)}else{var n=e.map(function(e){return t.findLayerOverlay(e)}).filter(function(e){return!!e});this.rawLayerIns.remove(n),this.overlayList=this.overlayList.filter(function(t){return!e.includes(t.id)})}else if(this.rawLayerIns instanceof h)if(e[0]instanceof AMap.LabelMarker){var a=e.map(function(e){return e.getExtData().id});this.overlayList=this.overlayList.filter(function(e){return!a.includes(e.id)}),this.rawLayerIns.remove(e)}else n=e.map(function(e){return t.findLayerOverlay(e)}).filter(function(e){return!!e}),this.rawLayerIns.remove(n),this.overlayList=this.overlayList.filter(function(t){return!e.includes(t.id)})},e.prototype.refreshOverlayIcon=function(t){var r=this.overlayList.findIndex(function(e){return e.id===t});if(-1===r)return A.error("[BaseMarkerLayer Error]: Invalid overlayId ".concat(t));var n=e.layerClassMap.get(this.layerType);if(this.rawLayerIns instanceof w||this.rawLayerIns instanceof h){var a,o=this.rawLayerIns.findLayerOverlay(t),i=n.convertOverlayDataToOvlOpts(this.overlayList[r],r,this.getIconUrl,this.getOverlayOpts,A),s=this.getIconUrl(this.overlayList[r]);this.rawLayerIns instanceof w?("string"==typeof(a=i.icon)?a=s:a.setImage(s),this.rawLayerIns.refreshOverlayIcon(o,a)):((a=i.icon).image=s,this.rawLayerIns.refreshOverlayIcon(o,a))}},e.prototype.refreshOverlayLabel=function(t,r){var n=this.overlayList.findIndex(function(e){return e.id===t});if(-1===n)return A.error("[Layer Error]: Invalid overlayId ".concat(t));var a=e.layerClassMap.get(this.layerType);if(this.rawLayerIns instanceof w||this.rawLayerIns instanceof h){var o=this.rawLayerIns.findLayerOverlay(t);this.overlayList.find(function(e){return e.id===t}).labelShowed=r;var i=a.convertOverlayDataToOvlOpts(this.overlayList[n],n,this.getIconUrl,this.getOverlayOpts,A);this.rawLayerIns instanceof w?r?this.rawLayerIns.refreshOverlayLabel(o,i.label):this.rawLayerIns.refreshOverlayLabel(o):r?this.rawLayerIns.refreshOverlayLabel(o,i.text):this.rawLayerIns.refreshOverlayLabel(o)}},e.prototype.getRawLayer=function(){return this.rawLayerIns.rawLayer},e.layerClassMap=new Map,e}();L.registerLayer("markerLayer",w),L.registerLayer("labelMarkerLayer",h);const g=L,M=function(){function e(){this.layers=new Map}return e.prototype.addLayer=function(e){if(this.hasLayer(e))throw new Error('Layer with name "'.concat(e.layerName,'" already exists'));this.layers.set(e.layerName,e)},e.prototype.removeLayer=function(e){this.layers.delete(e.layerName)},e.prototype.show=function(e){var t=this.layers.get(e);t&&t.show()},e.prototype.hide=function(e){var t=this.layers.get(e);t&&t.hide()},e.prototype.showAll=function(){this.layers.forEach(function(e){return e.show()})},e.prototype.hideAll=function(){this.layers.forEach(function(e){return e.hide()})},e.prototype.reload=function(){this.layers.forEach(function(e){return e.reload()})},e.prototype.hasLayer=function(e){return this.layers.has(e.layerName)},e}();var O=function(e,t,r,n){return new(r||(r=Promise))(function(a,o){function i(e){try{l(n.next(e))}catch(e){o(e)}}function s(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(i,s)}l((n=n.apply(e,t||[])).next())})},I=function(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=s(0),i.throw=s(1),i.return=s(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(l){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&s[0]?n.return:s[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,s[1])).done)return a;switch(n=0,a&&(s=[2&s[0],a.value]),s[0]){case 0:case 1:a=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,n=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!((a=(a=o.trys).length>0&&a[a.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!a||s[1]>a[0]&&s[1]<a[3])){o.label=s[1];break}if(6===s[0]&&o.label<a[1]){o.label=a[1],a=s;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(s);break}a[2]&&o.ops.pop(),o.trys.pop();continue}s=t.call(e,o)}catch(e){s=[6,e],n=0}finally{r=a=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}},m=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]])}return r},A=function(){function e(t,r){if(this.LayerManager=new M,"object"!=typeof r||!("Map"in r))throw e.error("AMap is not exist");if("mapIns"in t&&t.mapIns instanceof r.Map){t.mapIns;var n=m(t,["mapIns"]);this.map=t.mapIns,this.options=n}else{if(!("mountSelector"in t))throw e.error("mountSelector is not exist");this.options=t;var a=t.mountSelector;n=m(t,["mountSelector"]),this.map=this.initMap(a,n)}this.bindMapClickEvent()}return e.prototype.bindMapClickEvent=function(){this.map.on("click",function(){})},e.prototype.initMap=function(e,t){return new window.AMap.Map(e,t)},e.prototype.createLayer=function(e){var t=new g(e,this);return this.LayerManager.addLayer(t),t},e.prototype.removeLayer=function(t){this.LayerManager.hasLayer(t)?this.LayerManager.removeLayer(t):e.error("".concat(t.layerName," is not exist"))},e.prototype.setFitView=function(){for(var e,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];(e=this.map).setFitView.apply(e,t)},e.error=function(e){console.error("[MapUtils Error]:".concat(e))},e.createAMapMarker=l,e.createIcon=c,e.Size=p,e.Pixel=y,e.LngLat=u,e}();function b(e,t){return O(this,void 0,void 0,function(){var r;return I(this,function(n){switch(n.label){case 0:return r=window.AMap,t?[4,x(t)]:[3,2];case 1:r=n.sent(),n.label=2;case 2:return[2,new A(e,r)]}})})}function x(e){return O(this,void 0,void 0,function(){return I(this,function(t){switch(t.label){case 0:return[4,i.loadScript(e)];case 1:return[2,t.sent()]}})})}return n})());
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","mappings":"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","sources":["webpack://MapUtils/webpack/universalModuleDefinition","webpack://MapUtils/external umd {\"commonjs\":\"@amap/amap-jsapi-loader\",\"commonjs2\":\"@amap/amap-jsapi-loader\",\"amd\":\"@amap/amap-jsapi-loader\",\"root\":\"AMapLoader\"}","webpack://MapUtils/webpack/bootstrap","webpack://MapUtils/webpack/runtime/compat get default export","webpack://MapUtils/webpack/runtime/define property getters","webpack://MapUtils/webpack/runtime/hasOwnProperty shorthand","webpack://MapUtils/webpack/runtime/make namespace object","webpack://MapUtils/./src/MapSourceImport.ts","webpack://MapUtils/./src/gdMap/gdHelper.ts","webpack://MapUtils/./src/layers/baseMarkerLayer/LabelMarkerLayer.ts","webpack://MapUtils/./src/layers/baseMarkerLayer/MarkerLayer.ts","webpack://MapUtils/./src/layers/baseMarkerLayer/index.ts","webpack://MapUtils/./src/LayerManager.ts","webpack://MapUtils/./src/MapUtils.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@amap/amap-jsapi-loader\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"MapUtils\", [\"@amap/amap-jsapi-loader\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"MapUtils\"] = factory(require(\"@amap/amap-jsapi-loader\"));\n\telse\n\t\troot[\"MapUtils\"] = factory(root[\"AMapLoader\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE__591__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__591__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import AMapLoader from '@amap/amap-jsapi-loader';\r\nimport type { AMap, loaderOpts } from './types/amap.d.ts'; //TODO 项目配置ts自动引入,移除导入信息\r\n\r\nclass MapSourceImport {\r\n static async loadScript(opts: loaderOpts) {\r\n // 某些API加载前必须设置秘钥\r\n // window._AMapSecurityConfig = {\r\n // securityJsCode: process.env.VUE_APP_GD_MAP_CODE, // 安全密钥\r\n // };\r\n // 确保每次的AMap都是合法的所以不分开创建\r\n return AMapLoader.load(opts)\r\n .then((rawAMap: typeof AMap) => {\r\n // 将 AMap 全局对象挂载到 window 上\r\n return rawAMap;\r\n })\r\n .catch(e => {\r\n console.error(e);\r\n throw new Error(e);\r\n });\r\n }\r\n}\r\n\r\nexport default MapSourceImport;\r\n","const gdHelperMixin = {\r\n /**\r\n * 创建高德地图标注\r\n * @param {AMap.MarkerOptions} options 标注配置\r\n * @returns {AMap.Marker} 标注对象\r\n */\r\n createAMapMarker(options: AMap.MarkerOptions): AMap.Marker {\r\n return new AMap.Marker({\r\n ...options,\r\n });\r\n },\r\n\r\n /**\r\n * 创建一个图标\r\n * @param {[number, number]} size - 图标尺寸,格式为 [width, height]\r\n * @param {string} image - 图片的 URL 地址\r\n * @param {[number, number]} imageSize - 图标所用图片的大小,格式为 [width, height]\r\n * @param {[number, number]} imageOffset - 图标取图的偏移量,格式为 [x, y]\r\n * @returns {AMap.Icon} 图标对象\r\n */\r\n createIcon(opts: {\r\n size: [number, number];\r\n image: string;\r\n imageSize: [number, number];\r\n imageOffset: [number, number];\r\n }): AMap.Icon {\r\n return new AMap.Icon({\r\n size: this.Size(...opts.size),\r\n image: opts.image,\r\n imageSize: this.Size(...opts.imageSize),\r\n imageOffset: this.Pixel(...opts.imageOffset),\r\n });\r\n },\r\n\r\n /**\r\n * 地物对象的像素尺寸\r\n * @param {number} width 宽度\r\n * @param {number} height 高度\r\n * @returns {AMap.Size} 尺寸对象\r\n */\r\n Size(width: number, height: number): AMap.Size {\r\n return new AMap.Size(width, height);\r\n },\r\n\r\n /**\r\n * 像素坐标,确定地图上的一个像素点\r\n * @param {number} x x坐标\r\n * @param {number} y y坐标\r\n * @returns {AMap.Pixel} 像素对象\r\n */\r\n Pixel(...rest: [number, number]): AMap.Pixel {\r\n return new AMap.Pixel(...rest);\r\n },\r\n\r\n /**\r\n * 经纬度坐标,用来描述地图上的一个点位置\r\n * @param {number} lng 经度值\r\n * @param {number} lat 纬度值\r\n * @param {boolean} noWrap 是否不进行标准化处理\r\n * @returns {AMap.LngLat} 经纬度对象\r\n */\r\n LngLat(lng: number, lat: number, noWrap?: boolean): AMap.LngLat {\r\n return new AMap.LngLat(lng, lat, noWrap);\r\n },\r\n};\r\n\r\nexport default gdHelperMixin;\r\n","import type { OverlaysLayer, mapIns, OverlayData } from '@/types';\r\nimport type { MapUtilsConstructor } from '@/MapUtils';\r\nimport { MapUtils } from '@/MapUtils';\r\n\r\nclass LabelMarkerLayer {\r\n rawLayer: AMap.LabelsLayer;\r\n\r\n map: mapIns;\r\n\r\n events = new Map<AMap.EventType, () => void>();\r\n\r\n constructor(map: mapIns, opts?: AMap.LabelsLayerOptions) {\r\n this.map = map;\r\n\r\n this.rawLayer = new AMap.LabelsLayer({\r\n collision: true,\r\n opacity: 1,\r\n zIndex: 120,\r\n allowCollision: true,\r\n ...opts,\r\n });\r\n\r\n this.map.add(this.rawLayer);\r\n }\r\n\r\n /**\r\n * 将覆盖物数据转换为标记配置\r\n * @param item 覆盖物数据\r\n * @param index 索引\r\n * @param getIconUrl 获取图标URL的方法\r\n * @param getOverlayOpts 动态获取覆盖物配置的方法\r\n * @param MapUtils MapUtils构造函数\r\n * @returns 标记配置\r\n */\r\n static convertOverlayDataToOvlOpts<U extends {}>(\r\n item: OverlayData<U>,\r\n index: number,\r\n getIconUrl: (item: OverlayData<U>) => string,\r\n getOverlayOpts: (\r\n item: OverlayData<U>,\r\n index: number,\r\n MapUtils: MapUtilsConstructor\r\n ) => any,\r\n MapUtils: MapUtilsConstructor\r\n ): AMap.LabelMarkerOptions {\r\n const {\r\n overlayData: { lon, lat, extData, title },\r\n } = item;\r\n\r\n // 获取当前覆盖物项的动态配置\r\n const itemOpts = getOverlayOpts(item, index, MapUtils);\r\n\r\n const ovlOpts: AMap.LabelMarkerOptions = {\r\n position: [lon, lat],\r\n extData,\r\n ...itemOpts,\r\n };\r\n\r\n if (!item.labelShowed) {\r\n const textOpts = ovlOpts.text ?? {\r\n content: title,\r\n direction: 'top',\r\n style: {\r\n fontSize: 16,\r\n strokeWidth: 5,\r\n },\r\n zooms: [5, 20],\r\n };\r\n\r\n textOpts.content = '';\r\n\r\n ovlOpts.text = textOpts;\r\n } else {\r\n ovlOpts.text = ovlOpts.text ?? {\r\n content: title,\r\n direction: 'top',\r\n style: {\r\n fontSize: 16,\r\n strokeWidth: 5,\r\n },\r\n zooms: [5, 20],\r\n };\r\n }\r\n\r\n const imageUrl = getIconUrl(item);\r\n\r\n const icon = {\r\n image: '',\r\n size: [25, 34],\r\n anchor: 'bottom-center',\r\n };\r\n //@ts-ignore\r\n ovlOpts.icon = ovlOpts.icon ?? icon;\r\n //@ts-ignore\r\n ovlOpts.icon?.image = imageUrl;\r\n\r\n return ovlOpts as AMap.LabelMarkerOptions;\r\n }\r\n\r\n bindEventOverlay(clickType: AMap.EventType, callback: () => void) {\r\n if (typeof callback !== 'function') {\r\n MapUtils.error('Please provide an event callback function');\r\n return;\r\n }\r\n\r\n this.on(clickType, callback);\r\n\r\n this.events.set(clickType, callback);\r\n }\r\n\r\n addOverlayBindEvent(marker: InstanceType<typeof AMap.LabelMarker>) {\r\n this.events.forEach((callback, clickType) => {\r\n marker.on(clickType, callback);\r\n });\r\n }\r\n\r\n createOverlays(ovOptList: Array<AMap.LabelMarkerOptions>) {\r\n const labelMarkers = ovOptList.map(item => {\r\n const labelMarker = new AMap.LabelMarker(item); //包装吗?\r\n this.addOverlayBindEvent(labelMarker);\r\n return labelMarker;\r\n });\r\n\r\n // @ts-ignore\r\n this.rawLayer.add(labelMarkers);\r\n\r\n return labelMarkers;\r\n }\r\n\r\n add(markers: Array<AMap.LabelMarkerOptions>) {\r\n this.createOverlays(markers);\r\n }\r\n\r\n remove(markers: Array<AMap.LabelMarker>) {\r\n //@ts-ignore\r\n this.rawLayer.remove(markers);\r\n }\r\n\r\n hide() {\r\n this.rawLayer.hide();\r\n }\r\n\r\n show() {\r\n this.rawLayer.show();\r\n }\r\n\r\n getAllOverlay(): AMap.LabelMarker[] {\r\n // @ts-ignore\r\n return this.rawLayer.getAllOverlays();\r\n }\r\n\r\n destroy() {\r\n // @ts-expect-error\r\n this.rawLayer.clear();\r\n\r\n this.map.remove(this.rawLayer);\r\n }\r\n\r\n reload() {\r\n // @ts-expect-error\r\n this.rawLayer.clear();\r\n }\r\n\r\n clearAllOvl() {\r\n // @ts-expect-error\r\n this.rawLayer.clear();\r\n }\r\n\r\n overlayFitMap() {\r\n const labelMarkers = this.getAllOverlay();\r\n this.map.setFitView(labelMarkers);\r\n }\r\n\r\n findLayerOverlay(markerId: string | number) {\r\n if (!markerId) {\r\n MapUtils.error('Please provide a markerId');\r\n return null;\r\n }\r\n\r\n const labelMarkers: InstanceType<typeof AMap.LabelMarker>[] =\r\n this.getAllOverlay();\r\n\r\n const labelMarker = labelMarkers.find(item => {\r\n return item.getExtData().id === markerId;\r\n });\r\n\r\n return labelMarker || null;\r\n }\r\n\r\n refreshOverlayIcon(\r\n labelMarker: InstanceType<typeof AMap.LabelMarker>,\r\n iconOpts: AMap.LabelMarkerIconOptions\r\n ) {\r\n if (!labelMarker) {\r\n MapUtils.error('labelMarker is not found');\r\n return;\r\n }\r\n\r\n labelMarker.setIcon(iconOpts);\r\n }\r\n\r\n refreshOverlayLabel(\r\n labelMarker: InstanceType<typeof AMap.LabelMarker>,\r\n labelOpts?: AMap.LabelMarkerTextOptions\r\n ) {\r\n if (!labelMarker) {\r\n MapUtils.error('labelMarker is not found');\r\n return;\r\n }\r\n\r\n if (labelOpts) {\r\n labelMarker.setText(labelOpts);\r\n } else {\r\n const currentLabel = labelMarker.getText();\r\n labelMarker.setText({\r\n ...currentLabel,\r\n content: '', //清空可以生效吗\r\n });\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * labelLayer不存在on方法\r\n * @param {AMap.EventType} clickType 事件类型\r\n * @param {() => void} callback 事件函数\r\n * @memberof LabelMarkerLayer\r\n */\r\n on(clickType: AMap.EventType, callback: () => void) {\r\n const labelMarkers = this.getAllOverlay();\r\n\r\n labelMarkers.forEach(labelMarker => {\r\n labelMarker.on(clickType, callback);\r\n });\r\n }\r\n}\r\n\r\nexport default LabelMarkerLayer;\r\n","import type { OverlaysLayer, mapIns, OverlayData } from '@/types/index.d';\r\nimport { MapUtils } from '@/MapUtils';\r\nimport type { MapUtilsConstructor } from '@/MapUtils';\r\n\r\n// 接口约束类暂时去掉implements OverlaysLayer<AMap.Marker, AMap.OverlayGroup>\r\nclass MarkerLayer {\r\n rawLayer = new AMap.OverlayGroup();\r\n\r\n map: mapIns;\r\n\r\n events = new Map<AMap.EventType, () => void>();\r\n\r\n constructor(map: mapIns) {\r\n this.map = map;\r\n //@ts-ignore\r\n this.map.add(this.rawLayer);\r\n }\r\n\r\n /**\r\n * 将覆盖物数据转换为标记配置\r\n * @param item 覆盖物数据\r\n * @param index 索引\r\n * @param getIconUrl 获取图标URL的方法\r\n * @param getOverlayOpts 动态获取覆盖物配置的方法\r\n * @param MapUtils MapUtils构造函数\r\n * @returns 标记配置\r\n */\r\n static convertOverlayDataToOvlOpts<U extends {}>(\r\n item: OverlayData<U>,\r\n index: number,\r\n getIconUrl: (item: OverlayData<U>) => string,\r\n getOverlayOpts: (\r\n item: OverlayData<U>,\r\n index: number,\r\n MapUtils: MapUtilsConstructor\r\n ) => any,\r\n MapUtils: MapUtilsConstructor\r\n ): AMap.MarkerOptions {\r\n const {\r\n overlayData: { lon, lat, extData },\r\n } = item;\r\n\r\n // 获取当前覆盖物项的动态配置\r\n const itemOpts = getOverlayOpts(item, index, MapUtils);\r\n\r\n const ovlOpts: AMap.MarkerOptions = {\r\n position: [lon, lat],\r\n extData,\r\n ...itemOpts,\r\n };\r\n\r\n if (!item.labelShowed) {\r\n ovlOpts.label = undefined;\r\n } else {\r\n ovlOpts.label = ovlOpts.label ?? {\r\n content: `<div class=\"markerLayer\">${item.overlayData.title}</div>`,\r\n offset: MapUtils.Pixel(0, -5),\r\n direction: 'top',\r\n };\r\n }\r\n\r\n ovlOpts.icon =\r\n ovlOpts.icon ??\r\n MapUtils.createIcon({\r\n size: [25, 34],\r\n image: '',\r\n imageSize: [25, 34],\r\n imageOffset: [0, 0],\r\n });\r\n\r\n const imageUrl = getIconUrl(item);\r\n\r\n if (typeof ovlOpts.icon === 'string') {\r\n ovlOpts.icon = imageUrl;\r\n } else {\r\n (ovlOpts.icon as AMap.Icon).setImage(imageUrl);\r\n }\r\n\r\n return ovlOpts as AMap.MarkerOptions;\r\n }\r\n\r\n bindEventOverlay(clickType: AMap.EventType, callback: () => void) {\r\n if (typeof callback !== 'function') {\r\n MapUtils.error('Please provide an event callback function');\r\n return;\r\n }\r\n\r\n // 获取地图的所有点位,绑定上事件\r\n this.rawLayer.on(clickType, callback);\r\n\r\n // 保存事件\r\n this.events.set(clickType, callback);\r\n }\r\n //高德地图,marker新添加会自动绑定事件\r\n addOverlayBindEvent(marker: InstanceType<typeof AMap.Marker>) {\r\n this.events.forEach((callback, clickType) => {\r\n marker.on(clickType, callback);\r\n });\r\n }\r\n\r\n createOverlays(ovOptList: Array<AMap.MapOptions>) {\r\n const markers = ovOptList.map(item => MapUtils.createAMapMarker(item));\r\n\r\n this.rawLayer.addOverlays(markers);\r\n\r\n return markers;\r\n }\r\n\r\n add(markers: Array<AMap.MarkerOptions>) {\r\n this.createOverlays(markers);\r\n }\r\n\r\n remove(markers: Array<AMap.Marker>) {\r\n this.rawLayer.removeOverlays(markers);\r\n }\r\n\r\n hide() {\r\n this.rawLayer.hide();\r\n }\r\n\r\n show() {\r\n this.rawLayer.show();\r\n }\r\n\r\n getAllOverlay(): Array<AMap.Marker> {\r\n return this.rawLayer.getOverlays();\r\n }\r\n\r\n destroy() {\r\n this.rawLayer.clearOverlays();\r\n //@ts-expect-error\r\n this.rawLayer.setMap(null);\r\n }\r\n\r\n reload() {\r\n this.rawLayer.clearOverlays();\r\n }\r\n\r\n clearAllOvl() {\r\n this.rawLayer.clearOverlays();\r\n }\r\n\r\n overlayFitMap() {\r\n const makers = this.getAllOverlay();\r\n\r\n this.map.setFitView(makers);\r\n }\r\n\r\n findLayerOverlay(markerId: string | number) {\r\n if (!markerId) {\r\n MapUtils.error('Please provide a markerId');\r\n return;\r\n }\r\n\r\n const markers: InstanceType<typeof AMap.Marker>[] = this.getAllOverlay();\r\n\r\n const marker = markers.find(item => {\r\n return item.getExtData().id === markerId;\r\n });\r\n\r\n return marker || null; // 如果没有找到,返回null\r\n }\r\n\r\n // 设置激活的marker\r\n refreshOverlayIcon(\r\n marker: InstanceType<typeof AMap.Marker>,\r\n icon: string | AMap.Icon\r\n ) {\r\n if (!marker) {\r\n // 如果没有找到对应的marker\r\n return MapUtils.error('marker is not found');\r\n }\r\n // 获取点击的标记对象\r\n marker.setIcon(icon);\r\n }\r\n\r\n /* \r\n DOM过多页面会卡顿, 用到才创建\r\n */\r\n refreshOverlayLabel(\r\n marker: InstanceType<typeof AMap.Marker>,\r\n labelOpts?: {\r\n content: string;\r\n direction: string;\r\n offset: [number, number] | Array<number>;\r\n }\r\n ) {\r\n if (!marker) {\r\n // 如果没有找到对应的marker\r\n return MapUtils.error('marker is not found');\r\n }\r\n if (labelOpts) {\r\n marker.setLabel(labelOpts);\r\n } else {\r\n let labelOpts = marker.getLabel();\r\n\r\n marker.setLabel({\r\n ...labelOpts,\r\n content: '',\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport default MarkerLayer;\r\n","import LabelMarkerLayer from './LabelMarkerLayer';\r\nimport MarkerLayer from './MarkerLayer';\r\nimport type {\r\n MarkerLayerBaseType,\r\n LayerOpts,\r\n BaseMarkerLayerInfo,\r\n OverlayData,\r\n} from '@/types';\r\nimport { MapUtils } from '@/MapUtils';\r\nimport type { MapUtilsConstructor, mapUtilsIns } from '@/MapUtils';\r\n\r\nclass BaseMarkerLayer<\r\n U extends object,\r\n T extends MarkerLayerBaseType = 'markerLayer',\r\n V extends BaseMarkerLayerInfo[T] = BaseMarkerLayerInfo[T],\r\n> {\r\n // 图层类型与控制器类的映射关系\r\n static layerClassMap = new Map<string, BaseMarkerLayerTypeClass>();\r\n /**\r\n * 注册图层类型与控制器类的关联\r\n * @param {string} layerType - 图层类型\r\n * @param {Function} layerClass - 图层控制器类\r\n */\r\n static registerLayer(\r\n layerType: MarkerLayerBaseType,\r\n layerClass: BaseMarkerLayerTypeClass\r\n ) {\r\n if (typeof layerType !== 'string' || typeof layerClass !== 'function') {\r\n MapUtils.error('[LayerManager Error]: Invalid layer type or layer class');\r\n return;\r\n }\r\n\r\n BaseMarkerLayer.layerClassMap.set(layerType, layerClass);\r\n }\r\n\r\n overlayList: Array<OverlayData<U>>;\r\n // 策略模式\r\n rawLayerIns: V['layerIns'];\r\n\r\n layerVisible: boolean = true;\r\n\r\n layerName: string;\r\n\r\n mapUtils: mapUtilsIns;\r\n\r\n getIconUrl: (item: OverlayData<U>) => string;\r\n\r\n layerType: MarkerLayerBaseType;\r\n\r\n getOverlayOpts: (\r\n item: OverlayData<U>,\r\n index: number,\r\n MapUtils: MapUtilsConstructor\r\n ) => V['overlayOpts'];\r\n\r\n constructor(opts: LayerOpts<U, T>, mapUtils: mapUtilsIns) {\r\n const { layerType, layerName, ...rest } = opts;\r\n\r\n const OverlaysLayer = BaseMarkerLayer.layerClassMap.get(layerType);\r\n\r\n if (OverlaysLayer) {\r\n this.rawLayerIns = new OverlaysLayer(mapUtils.map, opts.overlayLayer);\r\n } else {\r\n throw new Error(\r\n `[BaseMarkerLayer Error]: Invalid layer type ${layerType}`\r\n );\r\n }\r\n\r\n this.layerName = layerName;\r\n\r\n this.mapUtils = mapUtils; //上层,mapUtils的实例\r\n\r\n this.overlayList = opts.overlayList;\r\n\r\n this.getIconUrl = opts.getIconUrl;\r\n\r\n this.getOverlayOpts = opts.getOverlayOpts;\r\n\r\n this.layerType = opts.layerType;\r\n\r\n Object.assign(this, rest);\r\n\r\n this.initLayer();\r\n }\r\n\r\n // 图层事件,覆盖物初始化\r\n initLayer() {\r\n this.createOverlays(this.overlayList);\r\n }\r\n\r\n /**\r\n * 将覆盖物数据转换为覆盖物配置\r\n * @param overlayList 覆盖物数据列表\r\n * @returns 覆盖物配置列表\r\n */\r\n convertOverlayDataToOpts(\r\n overlayList: Array<OverlayData<U>>\r\n ): Array<V['overlayOpts']> {\r\n const OverlaysLayer = BaseMarkerLayer.layerClassMap.get(this.layerType)!;\r\n\r\n return overlayList.map((item, index) => {\r\n return OverlaysLayer.convertOverlayDataToOvlOpts(\r\n item,\r\n index,\r\n this.getIconUrl,\r\n this.getOverlayOpts,\r\n MapUtils\r\n );\r\n });\r\n }\r\n\r\n createOverlays(overlayList: Array<OverlayData>): Array<V['ovIns']> {\r\n const markerListOpts: Array<V['overlayOpts']> =\r\n this.convertOverlayDataToOpts(overlayList as Array<OverlayData<U>>);\r\n\r\n return this.rawLayerIns.createOverlays(\r\n // @ts-ignore\r\n markerListOpts\r\n );\r\n }\r\n\r\n overlayFitMap() {\r\n this.rawLayerIns.overlayFitMap();\r\n }\r\n\r\n bindEventOverlays(clickType: AMap.EventType, callback: () => void) {\r\n (this.rawLayerIns as MarkerLayerIns).bindEventOverlay(clickType, callback);\r\n }\r\n\r\n hide() {\r\n this.layerVisible = false;\r\n this.rawLayerIns.hide();\r\n }\r\n\r\n show() {\r\n this.layerVisible = true;\r\n this.rawLayerIns.show();\r\n }\r\n\r\n getAllOverlay() {\r\n // 浅拷贝规避bug\r\n return [...this.rawLayerIns.getAllOverlay()!];\r\n }\r\n\r\n destroy() {\r\n // @ts-ignore\r\n this.mapUtils.removeLayer(this); //从MapUtils中移除\r\n this.rawLayerIns.destroy(); //地图层面移除\r\n this.overlayList = [];\r\n\r\n //TODO layer实例怎么销毁\r\n }\r\n\r\n clearAllOverlay() {\r\n this.overlayList = [];\r\n (this.rawLayerIns as MarkerLayerIns).clearAllOvl();\r\n }\r\n\r\n reload() {\r\n this.rawLayerIns.reload();\r\n\r\n this.createOverlays(this.overlayList);\r\n }\r\n\r\n findLayerOverlay(ovId: string | number) {\r\n return this.rawLayerIns.findLayerOverlay(ovId);\r\n }\r\n\r\n add(overlayList: Array<OverlayData<U>>) {\r\n const markerListOpts: Array<V['overlayOpts']> =\r\n this.convertOverlayDataToOpts(overlayList as Array<OverlayData<U>>);\r\n\r\n this.overlayList.push(...overlayList);\r\n // 类型守卫 缩小实例范围\r\n if (this.rawLayerIns instanceof MarkerLayer) {\r\n this.rawLayerIns.add(markerListOpts as AMap.MarkerOptions[]);\r\n } else if (this.rawLayerIns instanceof LabelMarkerLayer) {\r\n this.rawLayerIns.add(markerListOpts as AMap.LabelMarkerOptions[]);\r\n }\r\n }\r\n\r\n remove(ovs: Array<V['ovIns']> | string[]) {\r\n // 处理MarkerLayer类型\r\n if (this.rawLayerIns instanceof MarkerLayer) {\r\n // 类型守卫:检查是否为Marker实例数组\r\n const isMarkerArray = (arr: any[]): arr is AMap.Marker[] =>\r\n arr[0] instanceof AMap.Marker;\r\n\r\n if (!isMarkerArray(ovs)) {\r\n // 根据ID查找覆盖物实例\r\n const overlayInstances = ovs\r\n .map(id => this.findLayerOverlay(id as string | number))\r\n .filter((ovl): ovl is AMap.Marker => !!ovl);\r\n\r\n this.rawLayerIns.remove(overlayInstances);\r\n\r\n this.overlayList = this.overlayList.filter(\r\n item => !(ovs as Array<string | number>).includes(item.id)\r\n );\r\n } else {\r\n const ids = ovs.map(item => item.getExtData().id);\r\n\r\n this.overlayList = this.overlayList.filter(\r\n item => !(ids as Array<string | number>).includes(item.id)\r\n );\r\n // 直接使用覆盖物实例数组\r\n this.rawLayerIns.remove(ovs as AMap.Marker[]);\r\n }\r\n }\r\n // 处理LabelMarkerLayer类型\r\n else if (this.rawLayerIns instanceof LabelMarkerLayer) {\r\n // 类型守卫:检查是否为LabelMarker实例数组\r\n const isLabelMarkerArray = (arr: any[]): arr is AMap.LabelMarker[] =>\r\n arr[0] instanceof AMap.LabelMarker;\r\n\r\n if (!isLabelMarkerArray(ovs)) {\r\n // 根据ID查找覆盖物实例\r\n const overlayInstances = ovs\r\n .map(id => this.findLayerOverlay(id as string | number))\r\n .filter((ovl): ovl is AMap.LabelMarker => !!ovl);\r\n\r\n this.rawLayerIns.remove(overlayInstances);\r\n\r\n this.overlayList = this.overlayList.filter(\r\n item => !(ovs as Array<string | number>).includes(item.id)\r\n );\r\n } else {\r\n const ids = ovs.map(item => item.getExtData().id);\r\n\r\n this.overlayList = this.overlayList.filter(\r\n item => !(ids as Array<string | number>).includes(item.id)\r\n );\r\n // 直接使用覆盖物实例数组\r\n this.rawLayerIns.remove(ovs as AMap.LabelMarker[]);\r\n }\r\n }\r\n }\r\n\r\n refreshOverlayIcon(overlayId: string) {\r\n const ovlDataIndex = this.overlayList.findIndex(\r\n ovl => ovl.id === overlayId\r\n );\r\n\r\n if (ovlDataIndex === -1) {\r\n //抛异常\r\n return MapUtils.error(\r\n `[BaseMarkerLayer Error]: Invalid overlayId ${overlayId}`\r\n );\r\n }\r\n const OvlLayer = BaseMarkerLayer.layerClassMap.get(this.layerType);\r\n\r\n if (\r\n this.rawLayerIns instanceof MarkerLayer ||\r\n this.rawLayerIns instanceof LabelMarkerLayer\r\n ) {\r\n const marker = this.rawLayerIns.findLayerOverlay(overlayId);\r\n // 函数可以动态计算label,\r\n const ovlOpts = OvlLayer!.convertOverlayDataToOvlOpts(\r\n this.overlayList[ovlDataIndex],\r\n ovlDataIndex,\r\n this.getIconUrl,\r\n this.getOverlayOpts,\r\n MapUtils\r\n );\r\n\r\n const iconImageUrl = this.getIconUrl(this.overlayList[ovlDataIndex]);\r\n\r\n if (this.rawLayerIns instanceof MarkerLayer) {\r\n let icon = ovlOpts.icon! as AMap.Icon | string;\r\n\r\n if (typeof icon === 'string') {\r\n icon = iconImageUrl;\r\n } else {\r\n (icon as AMap.Icon).setImage(iconImageUrl);\r\n }\r\n\r\n (this.rawLayerIns as MarkerLayerIns).refreshOverlayIcon(\r\n (marker as AMap.Marker)!,\r\n icon\r\n );\r\n } else {\r\n let icon = ovlOpts.icon! as AMap.LabelMarkerIconOptions;\r\n\r\n icon.image = iconImageUrl;\r\n\r\n this.rawLayerIns.refreshOverlayIcon(\r\n (marker as AMap.LabelMarker)!,\r\n icon\r\n );\r\n }\r\n }\r\n }\r\n\r\n refreshOverlayLabel(overlayId: string | number, labelShow: boolean) {\r\n const ovlDataIndex = this.overlayList.findIndex(\r\n ovl => ovl.id === overlayId\r\n );\r\n\r\n if (ovlDataIndex === -1) {\r\n //抛异常\r\n return MapUtils.error(`[Layer Error]: Invalid overlayId ${overlayId}`);\r\n }\r\n const OvlLayer = BaseMarkerLayer.layerClassMap.get(this.layerType);\r\n\r\n if (\r\n this.rawLayerIns instanceof MarkerLayer ||\r\n this.rawLayerIns instanceof LabelMarkerLayer\r\n ) {\r\n // marker拿到手\r\n const marker = this.rawLayerIns.findLayerOverlay(overlayId)!;\r\n\r\n const ovDataItem = this.overlayList.find(item => item.id === overlayId);\r\n // 属性值转变为boolean\r\n ovDataItem!.labelShowed = labelShow;\r\n\r\n // 函数可以动态计算label,\r\n const ovlOpts = OvlLayer!.convertOverlayDataToOvlOpts(\r\n this.overlayList[ovlDataIndex],\r\n ovlDataIndex,\r\n this.getIconUrl,\r\n this.getOverlayOpts,\r\n MapUtils\r\n );\r\n\r\n if (this.rawLayerIns instanceof MarkerLayer) {\r\n if (labelShow) {\r\n this.rawLayerIns.refreshOverlayLabel(\r\n marker as AMap.Marker,\r\n (ovlOpts as AMap.MarkerOptions).label! as {\r\n content: string;\r\n direction: string;\r\n offset: [number, number] | Array<number>;\r\n }\r\n );\r\n } else {\r\n this.rawLayerIns.refreshOverlayLabel(marker as AMap.Marker);\r\n }\r\n } else {\r\n if (labelShow) {\r\n this.rawLayerIns.refreshOverlayLabel(\r\n marker as AMap.LabelMarker,\r\n ovlOpts.text as AMap.LabelMarkerTextOptions\r\n );\r\n } else {\r\n this.rawLayerIns.refreshOverlayLabel(marker as AMap.LabelMarker);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // 返回原始图层对象\r\n getRawLayer() {\r\n return this.rawLayerIns.rawLayer;\r\n }\r\n}\r\n\r\nBaseMarkerLayer.registerLayer('markerLayer', MarkerLayer);\r\nBaseMarkerLayer.registerLayer('labelMarkerLayer', LabelMarkerLayer);\r\n\r\n// MarkerLayer 类型\r\nexport type MarkerLayerIns = InstanceType<typeof MarkerLayer>;\r\n\r\n// LabelMarkerLayer 类型\r\nexport type LabelMarkerLayerIns = InstanceType<typeof LabelMarkerLayer>;\r\n\r\n// 所有图层类型的联合类型\r\nexport type BaseMarkerLayerTypeIns = MarkerLayerIns | LabelMarkerLayerIns;\r\n\r\nexport type BaseMarkerLayerTypeClass =\r\n | typeof MarkerLayer\r\n | typeof LabelMarkerLayer;\r\n\r\nexport type BaseMarkerLayerClass = typeof BaseMarkerLayer;\r\n\r\nexport type BaseMarkerLayerIns = InstanceType<BaseMarkerLayerClass>;\r\n\r\nexport { LabelMarkerLayer, MarkerLayer };\r\n\r\nexport default BaseMarkerLayer;\r\n","import type { LayerManger } from './types/index.d.ts';\r\nimport type { BaseMarkerLayerClass } from './layers/index.ts';\r\n\r\ntype LayerIns = InstanceType<BaseMarkerLayerClass>;\r\nexport class LayerManager {\r\n layers: Map<string, LayerIns> = new Map(); //组合模式\r\n\r\n addLayer(layer: LayerIns) {\r\n if (this.hasLayer(layer)) {\r\n throw new Error(`Layer with name \"${layer.layerName}\" already exists`);\r\n }\r\n this.layers.set(layer.layerName, layer);\r\n }\r\n\r\n removeLayer(layer: LayerIns) {\r\n this.layers.delete(layer.layerName);\r\n }\r\n\r\n show(LayerName: string) {\r\n let layer = this.layers.get(LayerName);\r\n if (layer) {\r\n layer.show();\r\n }\r\n }\r\n\r\n hide(LayerName: string) {\r\n let layer = this.layers.get(LayerName);\r\n if (layer) {\r\n layer.hide();\r\n }\r\n }\r\n\r\n showAll() {\r\n this.layers.forEach(val => val.show());\r\n }\r\n\r\n hideAll() {\r\n this.layers.forEach(val => val.hide());\r\n }\r\n\r\n reload() {\r\n this.layers.forEach(val => val.reload());\r\n }\r\n\r\n hasLayer(layer: LayerIns): boolean {\r\n return this.layers.has(layer.layerName);\r\n }\r\n}\r\nexport default LayerManager;\r\n","import MapSourceImport from './MapSourceImport';\r\nimport MapMixin from './gdMap/gdHelper';\r\nimport type { AMap as gdAMap, loaderOpts, MapOptions } from './types/amap.d';\r\nimport type {\r\n MapUtilsOpts,\r\n mapIns,\r\n MarkerLayerBaseType,\r\n LayerOpts,\r\n} from './types/index.d';\r\nimport { BaseMarkerLayerIns, BaseMarkerLayer } from './layers/index';\r\nimport type { SetOptional, Simplify } from 'type-fest';\r\nimport LayerManager from './LayerManager';\r\n\r\ntype MapUtilsConstructor = typeof MapUtils;\r\n\r\ntype mapUtilsIns = InstanceType<typeof MapUtils>;\r\n\r\nexport class MapUtils {\r\n // 地图实例信息\r\n map: mapIns;\r\n\r\n options: SetOptional<MapUtilsOpts['MapUtilsCreateOpts'], 'mountSelector'>;\r\n\r\n LayerManager: LayerManager = new LayerManager();\r\n\r\n static createAMapMarker = MapMixin.createAMapMarker;\r\n\r\n static createIcon = MapMixin.createIcon;\r\n\r\n static Size = MapMixin.Size;\r\n\r\n static Pixel = MapMixin.Pixel;\r\n\r\n static LngLat = MapMixin.LngLat;\r\n\r\n constructor(\r\n opts: MapUtilsOpts[keyof MapUtilsOpts],\r\n AMap: Simplify<typeof gdAMap>\r\n ) {\r\n if (!(typeof AMap === 'object' && 'Map' in AMap)) {\r\n throw MapUtils.error('AMap is not exist');\r\n }\r\n\r\n if ('mapIns' in opts && opts.mapIns instanceof AMap.Map) {\r\n const { mapIns, ...rest } = opts;\r\n this.map = opts.mapIns;\r\n this.options = rest;\r\n } else {\r\n if (!('mountSelector' in opts)) {\r\n throw MapUtils.error('mountSelector is not exist');\r\n } else {\r\n this.options = opts;\r\n\r\n const { mountSelector, ...rest } = opts;\r\n\r\n this.map = this.initMap(mountSelector, rest); //地图初始化\r\n }\r\n }\r\n\r\n this.bindMapClickEvent();\r\n }\r\n\r\n // 初始化绑定地图事件\r\n bindMapClickEvent() {\r\n this.map.on('click', () => {\r\n // if (this.clickMapRestMarkers) {\r\n // this.overlayGroupManagerMap.forEach((overlayGroup) => {\r\n // overlayGroup.resetActiveMarker(); // 清除图层上的所有覆盖物\r\n // });\r\n // }\r\n });\r\n }\r\n\r\n initMap(id: string, opts: MapOptions): mapIns {\r\n //参数要作检验吗\r\n return new window.AMap.Map(id, opts);\r\n }\r\n\r\n createLayer<U extends {}, T extends MarkerLayerBaseType = 'markerLayer'>(\r\n opts: LayerOpts<U, T>\r\n ) {\r\n const layer = new BaseMarkerLayer<U, T>(opts, this);\r\n // @ts-ignore\r\n this.LayerManager.addLayer(layer);\r\n return layer;\r\n }\r\n\r\n removeLayer(layer: BaseMarkerLayerIns) {\r\n const isLayerExist = this.LayerManager.hasLayer(layer);\r\n\r\n if (isLayerExist) {\r\n this.LayerManager.removeLayer(layer);\r\n } else {\r\n MapUtils.error(`${layer.layerName} is not exist`);\r\n }\r\n }\r\n\r\n /**\r\n * 根据地图上添加的覆盖物分布情况,自动缩放地图到合适的视野级别\r\n * @param {Array} overlays - 覆盖物数组,缺省为全部覆盖物\r\n * @param {Boolean} immediately - 是否立即过渡\r\n * @param {Array<Number>} avoid - 四周边距,上、下、左、右\r\n * @param {number} maxZoom - 最大地图zoom级别\r\n */\r\n setFitView(...opts: Parameters<mapIns['setFitView']>): void {\r\n this.map.setFitView(...opts);\r\n }\r\n\r\n static error(msg: string) {\r\n console.error(`[MapUtils Error]:${msg}`);\r\n }\r\n}\r\n\r\nexport type { mapUtilsIns, MapUtilsConstructor };\r\n\r\nexport async function createMapUtils(\r\n opts: MapUtilsOpts[keyof MapUtilsOpts],\r\n loaderOPts?: loaderOpts\r\n) {\r\n // window上存在属性已经加载\r\n let AMap = window.AMap;\r\n\r\n if (loaderOPts) {\r\n AMap = await initMapSource(loaderOPts);\r\n }\r\n\r\n return new MapUtils(opts, AMap);\r\n}\r\n\r\n// 地图拆分\r\nexport async function initMapSource(Opts: loaderOpts) {\r\n return await MapSourceImport.loadScript(Opts);\r\n}\r\n"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__591__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","loadScript","opts","then","rawAMap","catch","e","console","error","Error","options","AMap","Marker","Icon","size","Size","image","imageSize","imageOffset","Pixel","width","height","rest","lng","lat","noWrap","LngLat","map","events","Map","rawLayer","LabelsLayer","collision","opacity","zIndex","allowCollision","add","convertOverlayDataToOvlOpts","item","index","getIconUrl","getOverlayOpts","MapUtils","lon","extData","title","itemOpts","ovlOpts","position","labelShowed","text","content","direction","style","fontSize","strokeWidth","zooms","textOpts","imageUrl","icon","anchor","bindEventOverlay","clickType","callback","on","set","addOverlayBindEvent","marker","forEach","createOverlays","ovOptList","labelMarkers","labelMarker","LabelMarker","markers","remove","hide","show","getAllOverlay","getAllOverlays","destroy","clear","reload","clearAllOvl","overlayFitMap","setFitView","findLayerOverlay","markerId","find","getExtData","id","refreshOverlayIcon","iconOpts","setIcon","refreshOverlayLabel","labelOpts","setText","currentLabel","getText","OverlayGroup","label","overlayData","offset","createIcon","setImage","createAMapMarker","addOverlays","removeOverlays","getOverlays","clearOverlays","setMap","makers","setLabel","getLabel","mapUtils","layerVisible","layerType","layerName","OverlaysLayer","BaseMarkerLayer","layerClassMap","rawLayerIns","overlayLayer","overlayList","assign","initLayer","registerLayer","layerClass","convertOverlayDataToOpts","markerListOpts","bindEventOverlays","removeLayer","clearAllOverlay","ovId","push","ovs","filter","includes","overlayInstances","ovl","overlayId","ovlDataIndex","findIndex","OvlLayer","iconImageUrl","labelShow","getRawLayer","layers","addLayer","layer","hasLayer","delete","LayerName","showAll","val","hideAll","has","LayerManager","mapIns","mountSelector","initMap","bindMapClickEvent","window","createLayer","msg","createMapUtils","loaderOPts","initMapSource","Opts"],"ignoreList":[],"sourceRoot":""}
1
+ {"version":3,"file":"index.js","mappings":"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","sources":["webpack://MapUtils/webpack/universalModuleDefinition","webpack://MapUtils/./node_modules/@amap/amap-jsapi-loader/dist/index.js","webpack://MapUtils/webpack/bootstrap","webpack://MapUtils/webpack/runtime/compat get default export","webpack://MapUtils/webpack/runtime/define property getters","webpack://MapUtils/webpack/runtime/hasOwnProperty shorthand","webpack://MapUtils/webpack/runtime/make namespace object","webpack://MapUtils/./src/MapSourceImport.ts","webpack://MapUtils/./src/gdMap/gdHelper.ts","webpack://MapUtils/./src/layers/baseMarkerLayer/LabelMarkerLayer.ts","webpack://MapUtils/./src/layers/baseMarkerLayer/MarkerLayer.ts","webpack://MapUtils/./src/layers/baseMarkerLayer/index.ts","webpack://MapUtils/./src/LayerManager.ts","webpack://MapUtils/./src/MapUtils.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"MapUtils\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"MapUtils\"] = factory();\n\telse\n\t\troot[\"MapUtils\"] = factory();\n})(this, () => {\nreturn ","'use strict';(function(m,p){\"object\"===typeof exports&&\"undefined\"!==typeof module?module.exports=p():\"function\"===typeof define&&define.amd?define(p):(m=m||self,m.AMapLoader=p())})(this,function(){function m(a){var b=[];a.AMapUI&&b.push(p(a.AMapUI));a.Loca&&b.push(r(a.Loca));return Promise.all(b)}function p(a){return new Promise(function(h,c){var f=[];if(a.plugins)for(var e=0;e<a.plugins.length;e+=1)-1==d.AMapUI.plugins.indexOf(a.plugins[e])&&f.push(a.plugins[e]);if(g.AMapUI===b.failed)c(\"\\u524d\\u6b21\\u8bf7\\u6c42 AMapUI \\u5931\\u8d25\");\nelse if(g.AMapUI===b.notload){g.AMapUI=b.loading;d.AMapUI.version=a.version||d.AMapUI.version;e=d.AMapUI.version;var l=document.body||document.head,k=document.createElement(\"script\");k.type=\"text/javascript\";k.src=\"https://webapi.amap.com/ui/\"+e+\"/main.js\";k.onerror=function(a){g.AMapUI=b.failed;c(\"\\u8bf7\\u6c42 AMapUI \\u5931\\u8d25\")};k.onload=function(){g.AMapUI=b.loaded;if(f.length)window.AMapUI.loadUI(f,function(){for(var a=0,b=f.length;a<b;a++){var c=f[a].split(\"/\").slice(-1)[0];window.AMapUI[c]=\narguments[a]}for(h();n.AMapUI.length;)n.AMapUI.splice(0,1)[0]()});else for(h();n.AMapUI.length;)n.AMapUI.splice(0,1)[0]()};l.appendChild(k)}else g.AMapUI===b.loaded?a.version&&a.version!==d.AMapUI.version?c(\"\\u4e0d\\u5141\\u8bb8\\u591a\\u4e2a\\u7248\\u672c AMapUI \\u6df7\\u7528\"):f.length?window.AMapUI.loadUI(f,function(){for(var a=0,b=f.length;a<b;a++){var c=f[a].split(\"/\").slice(-1)[0];window.AMapUI[c]=arguments[a]}h()}):h():a.version&&a.version!==d.AMapUI.version?c(\"\\u4e0d\\u5141\\u8bb8\\u591a\\u4e2a\\u7248\\u672c AMapUI \\u6df7\\u7528\"):\nn.AMapUI.push(function(a){a?c(a):f.length?window.AMapUI.loadUI(f,function(){for(var a=0,b=f.length;a<b;a++){var c=f[a].split(\"/\").slice(-1)[0];window.AMapUI[c]=arguments[a]}h()}):h()})})}function r(a){return new Promise(function(h,c){if(g.Loca===b.failed)c(\"\\u524d\\u6b21\\u8bf7\\u6c42 Loca \\u5931\\u8d25\");else if(g.Loca===b.notload){g.Loca=b.loading;d.Loca.version=a.version||d.Loca.version;var f=d.Loca.version,e=d.AMap.version.startsWith(\"2\"),l=f.startsWith(\"2\");if(e&&!l||!e&&l)c(\"JSAPI \\u4e0e Loca \\u7248\\u672c\\u4e0d\\u5bf9\\u5e94\\uff01\\uff01\");\nelse{e=d.key;l=document.body||document.head;var k=document.createElement(\"script\");k.type=\"text/javascript\";k.src=\"https://webapi.amap.com/loca?v=\"+f+\"&key=\"+e;k.onerror=function(a){g.Loca=b.failed;c(\"\\u8bf7\\u6c42 AMapUI \\u5931\\u8d25\")};k.onload=function(){g.Loca=b.loaded;for(h();n.Loca.length;)n.Loca.splice(0,1)[0]()};l.appendChild(k)}}else g.Loca===b.loaded?a.version&&a.version!==d.Loca.version?c(\"\\u4e0d\\u5141\\u8bb8\\u591a\\u4e2a\\u7248\\u672c Loca \\u6df7\\u7528\"):h():a.version&&a.version!==d.Loca.version?\nc(\"\\u4e0d\\u5141\\u8bb8\\u591a\\u4e2a\\u7248\\u672c Loca \\u6df7\\u7528\"):n.Loca.push(function(a){a?c(a):c()})})}if(!window)throw Error(\"AMap JSAPI can only be used in Browser.\");var b;(function(a){a.notload=\"notload\";a.loading=\"loading\";a.loaded=\"loaded\";a.failed=\"failed\"})(b||(b={}));var d={key:\"\",AMap:{version:\"1.4.15\",plugins:[]},AMapUI:{version:\"1.1\",plugins:[]},Loca:{version:\"1.3.2\"}},g={AMap:b.notload,AMapUI:b.notload,Loca:b.notload},n={AMap:[],AMapUI:[],Loca:[]},q=[],t=function(a){\"function\"==typeof a&&\n(g.AMap===b.loaded?a(window.AMap):q.push(a))};return{load:function(a){return new Promise(function(h,c){if(g.AMap==b.failed)c(\"\");else if(g.AMap==b.notload){var f=a.key,e=a.version,l=a.plugins;f?(window.AMap&&\"lbs.amap.com\"!==location.host&&c(\"\\u7981\\u6b62\\u591a\\u79cdAPI\\u52a0\\u8f7d\\u65b9\\u5f0f\\u6df7\\u7528\"),d.key=f,d.AMap.version=e||d.AMap.version,d.AMap.plugins=l||d.AMap.plugins,g.AMap=b.loading,e=document.body||document.head,window.___onAPILoaded=function(d){delete window.___onAPILoaded;if(d)g.AMap=\nb.failed,c(d);else for(g.AMap=b.loaded,m(a).then(function(){h(window.AMap)})[\"catch\"](c);q.length;)q.splice(0,1)[0]()},l=document.createElement(\"script\"),l.type=\"text/javascript\",l.src=\"https://webapi.amap.com/maps?callback=___onAPILoaded&v=\"+d.AMap.version+\"&key=\"+f+\"&plugin=\"+d.AMap.plugins.join(\",\"),l.onerror=function(a){g.AMap=b.failed;c(a)},e.appendChild(l)):c(\"\\u8bf7\\u586b\\u5199key\")}else if(g.AMap==b.loaded)if(a.key&&a.key!==d.key)c(\"\\u591a\\u4e2a\\u4e0d\\u4e00\\u81f4\\u7684 key\");else if(a.version&&\na.version!==d.AMap.version)c(\"\\u4e0d\\u5141\\u8bb8\\u591a\\u4e2a\\u7248\\u672c JSAPI \\u6df7\\u7528\");else{f=[];if(a.plugins)for(e=0;e<a.plugins.length;e+=1)-1==d.AMap.plugins.indexOf(a.plugins[e])&&f.push(a.plugins[e]);if(f.length)window.AMap.plugin(f,function(){m(a).then(function(){h(window.AMap)})[\"catch\"](c)});else m(a).then(function(){h(window.AMap)})[\"catch\"](c)}else if(a.key&&a.key!==d.key)c(\"\\u591a\\u4e2a\\u4e0d\\u4e00\\u81f4\\u7684 key\");else if(a.version&&a.version!==d.AMap.version)c(\"\\u4e0d\\u5141\\u8bb8\\u591a\\u4e2a\\u7248\\u672c JSAPI \\u6df7\\u7528\");\nelse{var k=[];if(a.plugins)for(e=0;e<a.plugins.length;e+=1)-1==d.AMap.plugins.indexOf(a.plugins[e])&&k.push(a.plugins[e]);t(function(){if(k.length)window.AMap.plugin(k,function(){m(a).then(function(){h(window.AMap)})[\"catch\"](c)});else m(a).then(function(){h(window.AMap)})[\"catch\"](c)})}})},reset:function(){delete window.AMap;delete window.AMapUI;delete window.Loca;d={key:\"\",AMap:{version:\"1.4.15\",plugins:[]},AMapUI:{version:\"1.1\",plugins:[]},Loca:{version:\"1.3.2\"}};g={AMap:b.notload,AMapUI:b.notload,\nLoca:b.notload};n={AMap:[],AMapUI:[],Loca:[]}}}})\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import AMapLoader from '@amap/amap-jsapi-loader';\nimport type { AMap, loaderOpts } from './types/amap.d.ts'; //TODO 项目配置ts自动引入,移除导入信息\n\nclass MapSourceImport {\n static async loadScript(opts: loaderOpts) {\n // 某些API加载前必须设置秘钥\n // window._AMapSecurityConfig = {\n // securityJsCode: process.env.VUE_APP_GD_MAP_CODE, // 安全密钥\n // };\n // 确保每次的AMap都是合法的所以不分开创建\n return AMapLoader.load(opts)\n .then((rawAMap: typeof AMap) => {\n // 将 AMap 全局对象挂载到 window 上\n return rawAMap;\n })\n .catch(e => {\n console.error(e);\n throw new Error(e);\n });\n }\n}\n\nexport default MapSourceImport;\n","const gdHelperMixin = {\n /**\n * 创建高德地图标注\n * @param {AMap.MarkerOptions} options 标注配置\n * @returns {AMap.Marker} 标注对象\n */\n createAMapMarker(options: AMap.MarkerOptions): AMap.Marker {\n return new AMap.Marker({\n ...options,\n });\n },\n\n /**\n * 创建一个图标\n * @param {[number, number]} size - 图标尺寸,格式为 [width, height]\n * @param {string} image - 图片的 URL 地址\n * @param {[number, number]} imageSize - 图标所用图片的大小,格式为 [width, height]\n * @param {[number, number]} imageOffset - 图标取图的偏移量,格式为 [x, y]\n * @returns {AMap.Icon} 图标对象\n */\n createIcon(opts: {\n size: [number, number];\n image: string;\n imageSize: [number, number];\n imageOffset: [number, number];\n }): AMap.Icon {\n return new AMap.Icon({\n size: this.Size(...opts.size),\n image: opts.image,\n imageSize: this.Size(...opts.imageSize),\n imageOffset: this.Pixel(...opts.imageOffset),\n });\n },\n\n /**\n * 地物对象的像素尺寸\n * @param {number} width 宽度\n * @param {number} height 高度\n * @returns {AMap.Size} 尺寸对象\n */\n Size(width: number, height: number): AMap.Size {\n return new AMap.Size(width, height);\n },\n\n /**\n * 像素坐标,确定地图上的一个像素点\n * @param {number} x x坐标\n * @param {number} y y坐标\n * @returns {AMap.Pixel} 像素对象\n */\n Pixel(...rest: [number, number]): AMap.Pixel {\n return new AMap.Pixel(...rest);\n },\n\n /**\n * 经纬度坐标,用来描述地图上的一个点位置\n * @param {number} lng 经度值\n * @param {number} lat 纬度值\n * @param {boolean} noWrap 是否不进行标准化处理\n * @returns {AMap.LngLat} 经纬度对象\n */\n LngLat(lng: number, lat: number, noWrap?: boolean): AMap.LngLat {\n return new AMap.LngLat(lng, lat, noWrap);\n },\n};\n\nexport default gdHelperMixin;\n","import type { OverlaysLayer, mapIns, OverlayData } from '@/types';\nimport type { MapUtilsConstructor } from '@/MapUtils';\nimport { MapUtils } from '@/MapUtils';\n\nclass LabelMarkerLayer {\n rawLayer: AMap.LabelsLayer;\n\n map: mapIns;\n\n events = new Map<AMap.EventType, () => void>();\n\n constructor(map: mapIns, opts?: AMap.LabelsLayerOptions) {\n this.map = map;\n\n this.rawLayer = new AMap.LabelsLayer({\n collision: true,\n opacity: 1,\n zIndex: 120,\n allowCollision: true,\n ...opts,\n });\n\n this.map.add(this.rawLayer);\n }\n\n /**\n * 将覆盖物数据转换为标记配置\n * @param item 覆盖物数据\n * @param index 索引\n * @param getIconUrl 获取图标URL的方法\n * @param getOverlayOpts 动态获取覆盖物配置的方法\n * @param MapUtils MapUtils构造函数\n * @returns 标记配置\n */\n static convertOverlayDataToOvlOpts<U extends {}>(\n item: OverlayData<U>,\n index: number,\n getIconUrl: (item: OverlayData<U>) => string,\n getOverlayOpts: (\n item: OverlayData<U>,\n index: number,\n MapUtils: MapUtilsConstructor\n ) => any,\n MapUtils: MapUtilsConstructor\n ): AMap.LabelMarkerOptions {\n const {\n overlayData: { lon, lat, extData, title },\n } = item;\n\n // 获取当前覆盖物项的动态配置\n const itemOpts = getOverlayOpts(item, index, MapUtils);\n\n const ovlOpts: AMap.LabelMarkerOptions = {\n position: [lon, lat],\n extData,\n ...itemOpts,\n };\n\n if (!item.labelShowed) {\n const textOpts = ovlOpts.text ?? {\n content: title,\n direction: 'top',\n style: {\n fontSize: 16,\n strokeWidth: 5,\n },\n zooms: [5, 20],\n };\n\n textOpts.content = '';\n\n ovlOpts.text = textOpts;\n } else {\n ovlOpts.text = ovlOpts.text ?? {\n content: title,\n direction: 'top',\n style: {\n fontSize: 16,\n strokeWidth: 5,\n },\n zooms: [5, 20],\n };\n }\n\n const imageUrl = getIconUrl(item);\n\n const icon = {\n image: '',\n size: [25, 34],\n anchor: 'bottom-center',\n };\n //@ts-ignore\n ovlOpts.icon = ovlOpts.icon ?? icon;\n //@ts-ignore\n ovlOpts.icon?.image = imageUrl;\n\n return ovlOpts as AMap.LabelMarkerOptions;\n }\n\n bindEventOverlay(clickType: AMap.EventType, callback: () => void) {\n if (typeof callback !== 'function') {\n MapUtils.error('Please provide an event callback function');\n return;\n }\n\n this.on(clickType, callback);\n\n this.events.set(clickType, callback);\n }\n\n addOverlayBindEvent(marker: InstanceType<typeof AMap.LabelMarker>) {\n this.events.forEach((callback, clickType) => {\n marker.on(clickType, callback);\n });\n }\n\n createOverlays(ovOptList: Array<AMap.LabelMarkerOptions>) {\n const labelMarkers = ovOptList.map(item => {\n const labelMarker = new AMap.LabelMarker(item); //包装吗?\n this.addOverlayBindEvent(labelMarker);\n return labelMarker;\n });\n\n // @ts-ignore\n this.rawLayer.add(labelMarkers);\n\n return labelMarkers;\n }\n\n add(markers: Array<AMap.LabelMarkerOptions>) {\n this.createOverlays(markers);\n }\n\n remove(markers: Array<AMap.LabelMarker>) {\n //@ts-ignore\n this.rawLayer.remove(markers);\n }\n\n hide() {\n this.rawLayer.hide();\n }\n\n show() {\n this.rawLayer.show();\n }\n\n getAllOverlay(): AMap.LabelMarker[] {\n // @ts-ignore\n return this.rawLayer.getAllOverlays();\n }\n\n destroy() {\n // @ts-expect-error\n this.rawLayer.clear();\n\n this.map.remove(this.rawLayer);\n }\n\n reload() {\n // @ts-expect-error\n this.rawLayer.clear();\n }\n\n clearAllOvl() {\n // @ts-expect-error\n this.rawLayer.clear();\n }\n\n overlayFitMap() {\n const labelMarkers = this.getAllOverlay();\n this.map.setFitView(labelMarkers);\n }\n\n findLayerOverlay(markerId: string | number) {\n if (!markerId) {\n MapUtils.error('Please provide a markerId');\n return null;\n }\n\n const labelMarkers: InstanceType<typeof AMap.LabelMarker>[] =\n this.getAllOverlay();\n\n const labelMarker = labelMarkers.find(item => {\n return item.getExtData().id === markerId;\n });\n\n return labelMarker || null;\n }\n\n refreshOverlayIcon(\n labelMarker: InstanceType<typeof AMap.LabelMarker>,\n iconOpts: AMap.LabelMarkerIconOptions\n ) {\n if (!labelMarker) {\n MapUtils.error('labelMarker is not found');\n return;\n }\n\n labelMarker.setIcon(iconOpts);\n }\n\n refreshOverlayLabel(\n labelMarker: InstanceType<typeof AMap.LabelMarker>,\n labelOpts?: AMap.LabelMarkerTextOptions\n ) {\n if (!labelMarker) {\n MapUtils.error('labelMarker is not found');\n return;\n }\n\n if (labelOpts) {\n labelMarker.setText(labelOpts);\n } else {\n const currentLabel = labelMarker.getText();\n labelMarker.setText({\n ...currentLabel,\n content: '', //清空可以生效吗\n });\n }\n }\n\n /**\n *\n * labelLayer不存在on方法\n * @param {AMap.EventType} clickType 事件类型\n * @param {() => void} callback 事件函数\n * @memberof LabelMarkerLayer\n */\n on(clickType: AMap.EventType, callback: () => void) {\n const labelMarkers = this.getAllOverlay();\n\n labelMarkers.forEach(labelMarker => {\n labelMarker.on(clickType, callback);\n });\n }\n}\n\nexport default LabelMarkerLayer;\n","import type { OverlaysLayer, mapIns, OverlayData } from '@/types/index.d';\nimport { MapUtils } from '@/MapUtils';\nimport type { MapUtilsConstructor } from '@/MapUtils';\n\n// 接口约束类暂时去掉implements OverlaysLayer<AMap.Marker, AMap.OverlayGroup>\nclass MarkerLayer {\n rawLayer = new AMap.OverlayGroup();\n\n map: mapIns;\n\n events = new Map<AMap.EventType, () => void>();\n\n constructor(map: mapIns) {\n this.map = map;\n //@ts-ignore\n this.map.add(this.rawLayer);\n }\n\n /**\n * 将覆盖物数据转换为标记配置\n * @param item 覆盖物数据\n * @param index 索引\n * @param getIconUrl 获取图标URL的方法\n * @param getOverlayOpts 动态获取覆盖物配置的方法\n * @param MapUtils MapUtils构造函数\n * @returns 标记配置\n */\n static convertOverlayDataToOvlOpts<U extends {}>(\n item: OverlayData<U>,\n index: number,\n getIconUrl: (item: OverlayData<U>) => string,\n getOverlayOpts: (\n item: OverlayData<U>,\n index: number,\n MapUtils: MapUtilsConstructor\n ) => any,\n MapUtils: MapUtilsConstructor\n ): AMap.MarkerOptions {\n const {\n overlayData: { lon, lat, extData },\n } = item;\n\n // 获取当前覆盖物项的动态配置\n const itemOpts = getOverlayOpts(item, index, MapUtils);\n\n const ovlOpts: AMap.MarkerOptions = {\n position: [lon, lat],\n extData,\n ...itemOpts,\n };\n\n if (!item.labelShowed) {\n ovlOpts.label = undefined;\n } else {\n ovlOpts.label = ovlOpts.label ?? {\n content: `<div class=\"markerLayer\">${item.overlayData.title}</div>`,\n offset: MapUtils.Pixel(0, -5),\n direction: 'top',\n };\n }\n\n ovlOpts.icon =\n ovlOpts.icon ??\n MapUtils.createIcon({\n size: [25, 34],\n image: '',\n imageSize: [25, 34],\n imageOffset: [0, 0],\n });\n\n const imageUrl = getIconUrl(item);\n\n if (typeof ovlOpts.icon === 'string') {\n ovlOpts.icon = imageUrl;\n } else {\n (ovlOpts.icon as AMap.Icon).setImage(imageUrl);\n }\n\n return ovlOpts as AMap.MarkerOptions;\n }\n\n bindEventOverlay(clickType: AMap.EventType, callback: () => void) {\n if (typeof callback !== 'function') {\n MapUtils.error('Please provide an event callback function');\n return;\n }\n\n // 获取地图的所有点位,绑定上事件\n this.rawLayer.on(clickType, callback);\n\n // 保存事件\n this.events.set(clickType, callback);\n }\n //高德地图,marker新添加会自动绑定事件\n addOverlayBindEvent(marker: InstanceType<typeof AMap.Marker>) {\n this.events.forEach((callback, clickType) => {\n marker.on(clickType, callback);\n });\n }\n\n createOverlays(ovOptList: Array<AMap.MapOptions>) {\n const markers = ovOptList.map(item => MapUtils.createAMapMarker(item));\n\n this.rawLayer.addOverlays(markers);\n\n return markers;\n }\n\n add(markers: Array<AMap.MarkerOptions>) {\n this.createOverlays(markers);\n }\n\n remove(markers: Array<AMap.Marker>) {\n this.rawLayer.removeOverlays(markers);\n }\n\n hide() {\n this.rawLayer.hide();\n }\n\n show() {\n this.rawLayer.show();\n }\n\n getAllOverlay(): Array<AMap.Marker> {\n return this.rawLayer.getOverlays();\n }\n\n destroy() {\n this.rawLayer.clearOverlays();\n //@ts-expect-error\n this.rawLayer.setMap(null);\n }\n\n reload() {\n this.rawLayer.clearOverlays();\n }\n\n clearAllOvl() {\n this.rawLayer.clearOverlays();\n }\n\n overlayFitMap() {\n const makers = this.getAllOverlay();\n\n this.map.setFitView(makers);\n }\n\n findLayerOverlay(markerId: string | number) {\n if (!markerId) {\n MapUtils.error('Please provide a markerId');\n return;\n }\n\n const markers: InstanceType<typeof AMap.Marker>[] = this.getAllOverlay();\n\n const marker = markers.find(item => {\n return item.getExtData().id === markerId;\n });\n\n return marker || null; // 如果没有找到,返回null\n }\n\n // 设置激活的marker\n refreshOverlayIcon(\n marker: InstanceType<typeof AMap.Marker>,\n icon: string | AMap.Icon\n ) {\n if (!marker) {\n // 如果没有找到对应的marker\n return MapUtils.error('marker is not found');\n }\n // 获取点击的标记对象\n marker.setIcon(icon);\n }\n\n /* \n DOM过多页面会卡顿, 用到才创建\n */\n refreshOverlayLabel(\n marker: InstanceType<typeof AMap.Marker>,\n labelOpts?: {\n content: string;\n direction: string;\n offset: [number, number] | Array<number>;\n }\n ) {\n if (!marker) {\n // 如果没有找到对应的marker\n return MapUtils.error('marker is not found');\n }\n if (labelOpts) {\n marker.setLabel(labelOpts);\n } else {\n let labelOpts = marker.getLabel();\n\n marker.setLabel({\n ...labelOpts,\n content: '',\n });\n }\n }\n}\n\nexport default MarkerLayer;\n","import LabelMarkerLayer from './LabelMarkerLayer';\nimport MarkerLayer from './MarkerLayer';\nimport type {\n MarkerLayerBaseType,\n LayerOpts,\n BaseMarkerLayerInfo,\n OverlayData,\n} from '@/types';\nimport { MapUtils } from '@/MapUtils';\nimport type { MapUtilsConstructor, mapUtilsIns } from '@/MapUtils';\n\nclass BaseMarkerLayer<\n U extends object,\n T extends MarkerLayerBaseType = 'markerLayer',\n V extends BaseMarkerLayerInfo[T] = BaseMarkerLayerInfo[T],\n> {\n // 图层类型与控制器类的映射关系\n static layerClassMap = new Map<string, BaseMarkerLayerTypeClass>();\n /**\n * 注册图层类型与控制器类的关联\n * @param {string} layerType - 图层类型\n * @param {Function} layerClass - 图层控制器类\n */\n static registerLayer(\n layerType: MarkerLayerBaseType,\n layerClass: BaseMarkerLayerTypeClass\n ) {\n if (typeof layerType !== 'string' || typeof layerClass !== 'function') {\n MapUtils.error('[LayerManager Error]: Invalid layer type or layer class');\n return;\n }\n\n BaseMarkerLayer.layerClassMap.set(layerType, layerClass);\n }\n\n overlayList: Array<OverlayData<U>>;\n // 策略模式\n rawLayerIns: V['layerIns'];\n\n layerVisible: boolean = true;\n\n layerName: string;\n\n mapUtils: mapUtilsIns;\n\n getIconUrl: (item: OverlayData<U>) => string;\n\n layerType: MarkerLayerBaseType;\n\n getOverlayOpts: (\n item: OverlayData<U>,\n index: number,\n MapUtils: MapUtilsConstructor\n ) => V['overlayOpts'];\n\n constructor(opts: LayerOpts<U, T>, mapUtils: mapUtilsIns) {\n const { layerType, layerName, ...rest } = opts;\n\n const OverlaysLayer = BaseMarkerLayer.layerClassMap.get(layerType);\n\n if (OverlaysLayer) {\n this.rawLayerIns = new OverlaysLayer(mapUtils.map, opts.overlayLayer);\n } else {\n throw new Error(\n `[BaseMarkerLayer Error]: Invalid layer type ${layerType}`\n );\n }\n\n this.layerName = layerName;\n\n this.mapUtils = mapUtils; //上层,mapUtils的实例\n\n this.overlayList = opts.overlayList;\n\n this.getIconUrl = opts.getIconUrl;\n\n this.getOverlayOpts = opts.getOverlayOpts;\n\n this.layerType = opts.layerType;\n\n Object.assign(this, rest);\n\n this.initLayer();\n }\n\n // 图层事件,覆盖物初始化\n initLayer() {\n this.createOverlays(this.overlayList);\n }\n\n /**\n * 将覆盖物数据转换为覆盖物配置\n * @param overlayList 覆盖物数据列表\n * @returns 覆盖物配置列表\n */\n convertOverlayDataToOpts(\n overlayList: Array<OverlayData<U>>\n ): Array<V['overlayOpts']> {\n const OverlaysLayer = BaseMarkerLayer.layerClassMap.get(this.layerType)!;\n\n return overlayList.map((item, index) => {\n return OverlaysLayer.convertOverlayDataToOvlOpts(\n item,\n index,\n this.getIconUrl,\n this.getOverlayOpts,\n MapUtils\n );\n });\n }\n\n createOverlays(overlayList: Array<OverlayData>): Array<V['ovIns']> {\n const markerListOpts: Array<V['overlayOpts']> =\n this.convertOverlayDataToOpts(overlayList as Array<OverlayData<U>>);\n\n return this.rawLayerIns.createOverlays(\n // @ts-ignore\n markerListOpts\n );\n }\n\n overlayFitMap() {\n this.rawLayerIns.overlayFitMap();\n }\n\n bindEventOverlays(clickType: AMap.EventType, callback: () => void) {\n (this.rawLayerIns as MarkerLayerIns).bindEventOverlay(clickType, callback);\n }\n\n hide() {\n this.layerVisible = false;\n this.rawLayerIns.hide();\n }\n\n show() {\n this.layerVisible = true;\n this.rawLayerIns.show();\n }\n\n getAllOverlay() {\n // 浅拷贝规避bug\n return [...this.rawLayerIns.getAllOverlay()!];\n }\n\n destroy() {\n // @ts-ignore\n this.mapUtils.removeLayer(this); //从MapUtils中移除\n this.rawLayerIns.destroy(); //地图层面移除\n this.overlayList = [];\n\n //TODO layer实例怎么销毁\n }\n\n clearAllOverlay() {\n this.overlayList = [];\n (this.rawLayerIns as MarkerLayerIns).clearAllOvl();\n }\n\n reload() {\n this.rawLayerIns.reload();\n\n this.createOverlays(this.overlayList);\n }\n\n findLayerOverlay(ovId: string | number) {\n return this.rawLayerIns.findLayerOverlay(ovId);\n }\n\n add(overlayList: Array<OverlayData<U>>) {\n const markerListOpts: Array<V['overlayOpts']> =\n this.convertOverlayDataToOpts(overlayList as Array<OverlayData<U>>);\n\n this.overlayList.push(...overlayList);\n // 类型守卫 缩小实例范围\n if (this.rawLayerIns instanceof MarkerLayer) {\n this.rawLayerIns.add(markerListOpts as AMap.MarkerOptions[]);\n } else if (this.rawLayerIns instanceof LabelMarkerLayer) {\n this.rawLayerIns.add(markerListOpts as AMap.LabelMarkerOptions[]);\n }\n }\n\n remove(ovs: Array<V['ovIns']> | string[]) {\n // 处理MarkerLayer类型\n if (this.rawLayerIns instanceof MarkerLayer) {\n // 类型守卫:检查是否为Marker实例数组\n const isMarkerArray = (arr: any[]): arr is AMap.Marker[] =>\n arr[0] instanceof AMap.Marker;\n\n if (!isMarkerArray(ovs)) {\n // 根据ID查找覆盖物实例\n const overlayInstances = ovs\n .map(id => this.findLayerOverlay(id as string | number))\n .filter((ovl): ovl is AMap.Marker => !!ovl);\n\n this.rawLayerIns.remove(overlayInstances);\n\n this.overlayList = this.overlayList.filter(\n item => !(ovs as Array<string | number>).includes(item.id)\n );\n } else {\n const ids = ovs.map(item => item.getExtData().id);\n\n this.overlayList = this.overlayList.filter(\n item => !(ids as Array<string | number>).includes(item.id)\n );\n // 直接使用覆盖物实例数组\n this.rawLayerIns.remove(ovs as AMap.Marker[]);\n }\n }\n // 处理LabelMarkerLayer类型\n else if (this.rawLayerIns instanceof LabelMarkerLayer) {\n // 类型守卫:检查是否为LabelMarker实例数组\n const isLabelMarkerArray = (arr: any[]): arr is AMap.LabelMarker[] =>\n arr[0] instanceof AMap.LabelMarker;\n\n if (!isLabelMarkerArray(ovs)) {\n // 根据ID查找覆盖物实例\n const overlayInstances = ovs\n .map(id => this.findLayerOverlay(id as string | number))\n .filter((ovl): ovl is AMap.LabelMarker => !!ovl);\n\n this.rawLayerIns.remove(overlayInstances);\n\n this.overlayList = this.overlayList.filter(\n item => !(ovs as Array<string | number>).includes(item.id)\n );\n } else {\n const ids = ovs.map(item => item.getExtData().id);\n\n this.overlayList = this.overlayList.filter(\n item => !(ids as Array<string | number>).includes(item.id)\n );\n // 直接使用覆盖物实例数组\n this.rawLayerIns.remove(ovs as AMap.LabelMarker[]);\n }\n }\n }\n\n refreshOverlayIcon(overlayId: string) {\n const ovlDataIndex = this.overlayList.findIndex(\n ovl => ovl.id === overlayId\n );\n\n if (ovlDataIndex === -1) {\n //抛异常\n return MapUtils.error(\n `[BaseMarkerLayer Error]: Invalid overlayId ${overlayId}`\n );\n }\n const OvlLayer = BaseMarkerLayer.layerClassMap.get(this.layerType);\n\n if (\n this.rawLayerIns instanceof MarkerLayer ||\n this.rawLayerIns instanceof LabelMarkerLayer\n ) {\n const marker = this.rawLayerIns.findLayerOverlay(overlayId);\n // 函数可以动态计算label,\n const ovlOpts = OvlLayer!.convertOverlayDataToOvlOpts(\n this.overlayList[ovlDataIndex],\n ovlDataIndex,\n this.getIconUrl,\n this.getOverlayOpts,\n MapUtils\n );\n\n const iconImageUrl = this.getIconUrl(this.overlayList[ovlDataIndex]);\n\n if (this.rawLayerIns instanceof MarkerLayer) {\n let icon = ovlOpts.icon! as AMap.Icon | string;\n\n if (typeof icon === 'string') {\n icon = iconImageUrl;\n } else {\n (icon as AMap.Icon).setImage(iconImageUrl);\n }\n\n (this.rawLayerIns as MarkerLayerIns).refreshOverlayIcon(\n (marker as AMap.Marker)!,\n icon\n );\n } else {\n let icon = ovlOpts.icon! as AMap.LabelMarkerIconOptions;\n\n icon.image = iconImageUrl;\n\n this.rawLayerIns.refreshOverlayIcon(\n (marker as AMap.LabelMarker)!,\n icon\n );\n }\n }\n }\n\n refreshOverlayLabel(overlayId: string | number, labelShow: boolean) {\n const ovlDataIndex = this.overlayList.findIndex(\n ovl => ovl.id === overlayId\n );\n\n if (ovlDataIndex === -1) {\n //抛异常\n return MapUtils.error(`[Layer Error]: Invalid overlayId ${overlayId}`);\n }\n const OvlLayer = BaseMarkerLayer.layerClassMap.get(this.layerType);\n\n if (\n this.rawLayerIns instanceof MarkerLayer ||\n this.rawLayerIns instanceof LabelMarkerLayer\n ) {\n // marker拿到手\n const marker = this.rawLayerIns.findLayerOverlay(overlayId)!;\n\n const ovDataItem = this.overlayList.find(item => item.id === overlayId);\n // 属性值转变为boolean\n ovDataItem!.labelShowed = labelShow;\n\n // 函数可以动态计算label,\n const ovlOpts = OvlLayer!.convertOverlayDataToOvlOpts(\n this.overlayList[ovlDataIndex],\n ovlDataIndex,\n this.getIconUrl,\n this.getOverlayOpts,\n MapUtils\n );\n\n if (this.rawLayerIns instanceof MarkerLayer) {\n if (labelShow) {\n this.rawLayerIns.refreshOverlayLabel(\n marker as AMap.Marker,\n (ovlOpts as AMap.MarkerOptions).label! as {\n content: string;\n direction: string;\n offset: [number, number] | Array<number>;\n }\n );\n } else {\n this.rawLayerIns.refreshOverlayLabel(marker as AMap.Marker);\n }\n } else {\n if (labelShow) {\n this.rawLayerIns.refreshOverlayLabel(\n marker as AMap.LabelMarker,\n ovlOpts.text as AMap.LabelMarkerTextOptions\n );\n } else {\n this.rawLayerIns.refreshOverlayLabel(marker as AMap.LabelMarker);\n }\n }\n }\n }\n\n // 返回原始图层对象\n getRawLayer() {\n return this.rawLayerIns.rawLayer;\n }\n}\n\nBaseMarkerLayer.registerLayer('markerLayer', MarkerLayer);\nBaseMarkerLayer.registerLayer('labelMarkerLayer', LabelMarkerLayer);\n\n// MarkerLayer 类型\nexport type MarkerLayerIns = InstanceType<typeof MarkerLayer>;\n\n// LabelMarkerLayer 类型\nexport type LabelMarkerLayerIns = InstanceType<typeof LabelMarkerLayer>;\n\n// 所有图层类型的联合类型\nexport type BaseMarkerLayerTypeIns = MarkerLayerIns | LabelMarkerLayerIns;\n\nexport type BaseMarkerLayerTypeClass =\n | typeof MarkerLayer\n | typeof LabelMarkerLayer;\n\nexport type BaseMarkerLayerClass = typeof BaseMarkerLayer;\n\nexport type BaseMarkerLayerIns = InstanceType<BaseMarkerLayerClass>;\n\nexport { LabelMarkerLayer, MarkerLayer };\n\nexport default BaseMarkerLayer;\n","import type { LayerManger } from './types/index.d.ts';\nimport type { BaseMarkerLayerClass } from './layers/index.ts';\n\ntype LayerIns = InstanceType<BaseMarkerLayerClass>;\nexport class LayerManager {\n layers: Map<string, LayerIns> = new Map(); //组合模式\n\n addLayer(layer: LayerIns) {\n if (this.hasLayer(layer)) {\n throw new Error(`Layer with name \"${layer.layerName}\" already exists`);\n }\n this.layers.set(layer.layerName, layer);\n }\n\n removeLayer(layer: LayerIns) {\n this.layers.delete(layer.layerName);\n }\n\n show(LayerName: string) {\n let layer = this.layers.get(LayerName);\n if (layer) {\n layer.show();\n }\n }\n\n hide(LayerName: string) {\n let layer = this.layers.get(LayerName);\n if (layer) {\n layer.hide();\n }\n }\n\n showAll() {\n this.layers.forEach(val => val.show());\n }\n\n hideAll() {\n this.layers.forEach(val => val.hide());\n }\n\n reload() {\n this.layers.forEach(val => val.reload());\n }\n\n hasLayer(layer: LayerIns): boolean {\n return this.layers.has(layer.layerName);\n }\n}\nexport default LayerManager;\n","import MapSourceImport from './MapSourceImport';\nimport MapMixin from './gdMap/gdHelper';\nimport type { AMap as gdAMap, loaderOpts, MapOptions } from './types/amap.d';\nimport type {\n MapUtilsOpts,\n mapIns,\n MarkerLayerBaseType,\n LayerOpts,\n} from './types/index.d';\nimport { BaseMarkerLayerIns, BaseMarkerLayer } from './layers/index';\nimport type { SetOptional, Simplify } from 'type-fest';\nimport LayerManager from './LayerManager';\n\ntype MapUtilsConstructor = typeof MapUtils;\n\ntype mapUtilsIns = InstanceType<typeof MapUtils>;\n\nexport class MapUtils {\n // 地图实例信息\n map: mapIns;\n\n options: SetOptional<MapUtilsOpts['MapUtilsCreateOpts'], 'mountSelector'>;\n\n LayerManager: LayerManager = new LayerManager();\n\n static createAMapMarker = MapMixin.createAMapMarker;\n\n static createIcon = MapMixin.createIcon;\n\n static Size = MapMixin.Size;\n\n static Pixel = MapMixin.Pixel;\n\n static LngLat = MapMixin.LngLat;\n\n constructor(\n opts: MapUtilsOpts[keyof MapUtilsOpts],\n AMap: Simplify<typeof gdAMap>\n ) {\n if (!(typeof AMap === 'object' && 'Map' in AMap)) {\n throw MapUtils.error('AMap is not exist');\n }\n\n if ('mapIns' in opts && opts.mapIns instanceof AMap.Map) {\n const { mapIns, ...rest } = opts;\n this.map = opts.mapIns;\n this.options = rest;\n } else {\n if (!('mountSelector' in opts)) {\n throw MapUtils.error('mountSelector is not exist');\n } else {\n this.options = opts;\n\n const { mountSelector, ...rest } = opts;\n\n this.map = this.initMap(mountSelector, rest); //地图初始化\n }\n }\n\n this.bindMapClickEvent();\n }\n\n // 初始化绑定地图事件\n bindMapClickEvent() {\n this.map.on('click', () => {\n // if (this.clickMapRestMarkers) {\n // this.overlayGroupManagerMap.forEach((overlayGroup) => {\n // overlayGroup.resetActiveMarker(); // 清除图层上的所有覆盖物\n // });\n // }\n });\n }\n\n initMap(id: string, opts: MapOptions): mapIns {\n //参数要作检验吗\n return new window.AMap.Map(id, opts);\n }\n\n createLayer<U extends {}, T extends MarkerLayerBaseType = 'markerLayer'>(\n opts: LayerOpts<U, T>\n ) {\n const layer = new BaseMarkerLayer<U, T>(opts, this);\n // @ts-ignore\n this.LayerManager.addLayer(layer);\n return layer;\n }\n\n removeLayer(layer: BaseMarkerLayerIns) {\n const isLayerExist = this.LayerManager.hasLayer(layer);\n\n if (isLayerExist) {\n this.LayerManager.removeLayer(layer);\n } else {\n MapUtils.error(`${layer.layerName} is not exist`);\n }\n }\n\n /**\n * 根据地图上添加的覆盖物分布情况,自动缩放地图到合适的视野级别\n * @param {Array} overlays - 覆盖物数组,缺省为全部覆盖物\n * @param {Boolean} immediately - 是否立即过渡\n * @param {Array<Number>} avoid - 四周边距,上、下、左、右\n * @param {number} maxZoom - 最大地图zoom级别\n */\n setFitView(...opts: Parameters<mapIns['setFitView']>): void {\n this.map.setFitView(...opts);\n }\n\n static error(msg: string) {\n console.error(`[MapUtils Error]:${msg}`);\n }\n}\n\nexport type { mapUtilsIns, MapUtilsConstructor };\n\nexport async function createMapUtils(\n opts: MapUtilsOpts[keyof MapUtilsOpts],\n loaderOPts?: loaderOpts\n) {\n // window上存在属性已经加载\n let AMap = window.AMap;\n\n if (loaderOPts) {\n AMap = await initMapSource(loaderOPts);\n }\n\n return new MapUtils(opts, AMap);\n}\n\n// 地图拆分\nexport async function initMapSource(Opts: loaderOpts) {\n return await MapSourceImport.loadScript(Opts);\n}\n"],"names":["root","factory","exports","module","define","amd","this","m","a","b","AMapUI","push","p","Loca","r","Promise","all","h","c","f","plugins","e","length","d","indexOf","g","failed","notload","loading","version","l","document","body","head","k","createElement","type","src","onerror","onload","loaded","window","loadUI","split","slice","arguments","n","splice","appendChild","AMap","startsWith","key","Error","q","load","location","host","___onAPILoaded","then","join","plugin","t","reset","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","call","getter","__esModule","definition","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","value","loadScript","opts","rawAMap","catch","console","error","options","Marker","Icon","size","Size","image","imageSize","imageOffset","Pixel","width","height","rest","lng","lat","noWrap","LngLat","map","events","Map","rawLayer","LabelsLayer","collision","opacity","zIndex","allowCollision","add","convertOverlayDataToOvlOpts","item","index","getIconUrl","getOverlayOpts","MapUtils","lon","extData","title","itemOpts","ovlOpts","position","labelShowed","text","content","direction","style","fontSize","strokeWidth","zooms","textOpts","imageUrl","icon","anchor","bindEventOverlay","clickType","callback","on","set","addOverlayBindEvent","marker","forEach","createOverlays","ovOptList","labelMarkers","labelMarker","LabelMarker","markers","remove","hide","show","getAllOverlay","getAllOverlays","destroy","clear","reload","clearAllOvl","overlayFitMap","setFitView","findLayerOverlay","markerId","find","getExtData","id","refreshOverlayIcon","iconOpts","setIcon","refreshOverlayLabel","labelOpts","setText","currentLabel","getText","OverlayGroup","label","overlayData","offset","createIcon","setImage","createAMapMarker","addOverlays","removeOverlays","getOverlays","clearOverlays","setMap","makers","setLabel","getLabel","mapUtils","layerVisible","layerType","layerName","OverlaysLayer","BaseMarkerLayer","layerClassMap","rawLayerIns","overlayLayer","overlayList","assign","initLayer","registerLayer","layerClass","convertOverlayDataToOpts","markerListOpts","bindEventOverlays","removeLayer","clearAllOverlay","ovId","ovs","filter","includes","overlayInstances","ovl","overlayId","ovlDataIndex","findIndex","OvlLayer","iconImageUrl","labelShow","getRawLayer","layers","addLayer","layer","hasLayer","delete","LayerName","showAll","val","hideAll","has","LayerManager","mapIns","mountSelector","initMap","bindMapClickEvent","createLayer","msg","createMapUtils","loaderOPts","initMapSource","Opts"],"ignoreList":[],"sourceRoot":""}
@@ -1,23 +1,23 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <title>Document</title>
7
- </head>
8
- <body>
9
- <script src="../dist/index.js"></script>
10
- <script>
11
- const { initMapSource } = MapUtils;
12
-
13
- const loaderOpts = {
14
- version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
15
- plugins: ['AMap.MapType', 'AMap.MoveAnimation'], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
16
- key: '9506c73ed67acb0a09f1aabf88df4819',
17
- };
18
-
19
- initMapSource(loaderOpts)
20
-
21
- </script>
22
- </body>
23
- </html>
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Document</title>
7
+ </head>
8
+ <body>
9
+ <script src="../dist/index.js"></script>
10
+ <script>
11
+ const { initMapSource } = MapUtils;
12
+
13
+ const loaderOpts = {
14
+ version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
15
+ plugins: ['AMap.MapType', 'AMap.MoveAnimation'], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
16
+ key: '9506c73ed67acb0a09f1aabf88df4819',
17
+ };
18
+
19
+ initMapSource(loaderOpts)
20
+
21
+ </script>
22
+ </body>
23
+ </html>