@vuemap/vue-amap
Version:
高德地图vue3版本封装
1 lines • 4.68 kB
Source Map (JSON)
{"version":3,"file":"ElasticMarker.vue2.mjs","sources":["../../../../../packages/marker/ElasticMarker/ElasticMarker.vue"],"sourcesContent":["<template>\r\n <div />\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {defineOptions} from 'vue';\r\nimport {useRegister} from \"../../../mixins\";\r\nimport {buildProps} from \"../../../utils\";\r\n\r\ndefineOptions({\r\n name: 'ElAmapElasticMarker',\r\n inheritAttrs: false\r\n});\r\n\r\ndefineProps(buildProps({\r\n position: {\r\n type: [Array, Object],\r\n required: true\r\n }, // 点标记在地图上显示的位置\r\n title: {\r\n type: String\r\n }, // 鼠标滑过点标记时的文字提示。不设置则鼠标滑过点标无文字提示。\r\n offset: {\r\n type: [Array, Object]\r\n }, // 点标记显示位置偏移量,默认值为 [0,0] 。Marker指定position后,默认以marker左上角位置为基准点(若设置了anchor,则以anchor设置位置为基准点),对准所给定的position位置,若需使marker指定位置对准在position处,需根据marker的尺寸设置一定的偏移量。\r\n clickable: {\r\n type: Boolean,\r\n default: true\r\n }, // 点标记是否可点击,默认值: true\r\n draggable: {\r\n type: Boolean,\r\n default: false\r\n }, // 设置点标记是否可拖拽移动,默认值:false\r\n bubble: {\r\n type: Boolean,\r\n default: false\r\n }, // 事件是否冒泡,默认为 false\r\n zooms: {\r\n type: Array\r\n }, // 点标记显示的层级范围,超过范围不显示。默认值:zooms: [2, 20]\r\n cursor: {\r\n type: String\r\n }, // 指定鼠标悬停时的鼠,默认值:'pointer'\r\n topWhenClick: {\r\n type: Boolean,\r\n default: false\r\n }, // 鼠标点击时marker是否置顶,默认false ,不置顶\r\n zoomStyleMapping: {\r\n type: Object\r\n }, // 表示地图级别与styles中样式的映射,{14:0,15:0,16:1,17:1,}表示14到15级使用styles中的第0个样式,16-17级使用第二个样式\r\n styles: {\r\n type: Array\r\n }, // 多个不同样式的数组\r\n extData: {\r\n type: Object,\r\n default: () => null\r\n }\r\n}));\r\nconst emits = defineEmits(['init','update:position']);\r\n\r\nlet $amapComponent: AMap.ElasticMarker;\r\n\r\nconst {$$getInstance, parentInstance} = useRegister<AMap.ElasticMarker, AMap.Map>((options, parentComponent) => {\r\n return new Promise<AMap.ElasticMarker>((resolve) => {\r\n AMap.plugin(['AMap.ElasticMarker'], () => {\r\n $amapComponent = new AMap.ElasticMarker(options);\r\n parentComponent.add($amapComponent);\r\n bindModelEvents();\r\n resolve($amapComponent);\r\n });\r\n });\r\n\r\n}, {\r\n emits,\r\n destroyComponent () {\r\n if ($amapComponent && parentInstance?.$amapComponent) {\r\n if(!parentInstance?.isDestroy){\r\n parentInstance?.$amapComponent.remove($amapComponent);\r\n }\r\n $amapComponent = null as any;\r\n }\r\n },\r\n});\r\n\r\nconst bindModelEvents = () => {\r\n $amapComponent.on('dragend',() => {\r\n emitPosition();\r\n });\r\n $amapComponent.on('touchend',() => {\r\n emitPosition();\r\n });\r\n};\r\nconst emitPosition = () => {\r\n const position = $amapComponent.getPosition();\r\n emits('update:position', position?.toArray());\r\n};\r\n\r\ndefineExpose({\r\n $$getInstance\r\n});\r\n\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAEd,IAAI,IAAA,cAAA,CAAA;AAEJ,IAAA,MAAM,EAAC,aAAe,EAAA,cAAA,KAAkB,WAA0C,CAAA,CAAC,SAAS,eAAoB,KAAA;AAC9G,MAAO,OAAA,IAAI,OAA4B,CAAA,CAAC,OAAY,KAAA;AAClD,QAAA,IAAA,CAAK,MAAO,CAAA,CAAC,oBAAoB,CAAA,EAAG,MAAM;AACxC,UAAiB,cAAA,GAAA,IAAI,IAAK,CAAA,aAAA,CAAc,OAAO,CAAA,CAAA;AAC/C,UAAA,eAAA,CAAgB,IAAI,cAAc,CAAA,CAAA;AAClC,UAAgB,eAAA,EAAA,CAAA;AAChB,UAAA,OAAA,CAAQ,cAAc,CAAA,CAAA;AAAA,SACvB,CAAA,CAAA;AAAA,OACF,CAAA,CAAA;AAAA,KAEA,EAAA;AAAA,MACD,KAAA;AAAA,MACA,gBAAoB,GAAA;AAClB,QAAI,IAAA,cAAA,KAAkB,iDAAgB,cAAgB,CAAA,EAAA;AACpD,UAAG,IAAA,EAAC,iDAAgB,SAAU,CAAA,EAAA;AAC5B,YAAA,cAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,cAAA,CAAgB,eAAe,MAAO,CAAA,cAAA,CAAA,CAAA;AAAA,WACxC;AACA,UAAiB,cAAA,GAAA,IAAA,CAAA;AAAA,SACnB;AAAA,OACF;AAAA,KACD,CAAA,CAAA;AAED,IAAA,MAAM,kBAAkB,MAAM;AAC5B,MAAe,cAAA,CAAA,EAAA,CAAG,WAAU,MAAM;AAChC,QAAa,YAAA,EAAA,CAAA;AAAA,OACd,CAAA,CAAA;AACD,MAAe,cAAA,CAAA,EAAA,CAAG,YAAW,MAAM;AACjC,QAAa,YAAA,EAAA,CAAA;AAAA,OACd,CAAA,CAAA;AAAA,KACH,CAAA;AACA,IAAA,MAAM,eAAe,MAAM;AACzB,MAAM,MAAA,QAAA,GAAW,eAAe,WAAY,EAAA,CAAA;AAC5C,MAAM,KAAA,CAAA,iBAAA,EAAmB,qCAAU,OAAS,EAAA,CAAA,CAAA;AAAA,KAC9C,CAAA;AAEA,IAAa,QAAA,CAAA;AAAA,MACX,aAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;"}