UNPKG

@vuemap/vue-amap

Version:

高德地图vue3版本封装

1 lines 3.92 kB
{"version":3,"file":"MarkerCluster.vue2.mjs","sources":["../../../../../packages/marker/MarkerCluster/MarkerCluster.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\nimport type { PropType} from 'vue';\r\n\r\ndefineOptions({\r\n name: 'ElAmapMarkerCluster',\r\n inheritAttrs: false\r\n});\r\n\r\ndefineProps(buildProps({\r\n points: {\r\n type: Object as PropType<AMap.MarkerClusterData>,\r\n required: true\r\n }, // 需要进行聚合显示的点数据\r\n gridSize: {\r\n type: Number\r\n }, // 聚合计算时网格的像素大小,默认60\r\n maxZoom: {\r\n type: Number\r\n }, // 最大的聚合级别,大于该级别就不进行相应的聚合。默认值为 18,即小于 18 级的级别均进行聚合,18 及以上级别不进行聚合\r\n averageCenter: {\r\n type: Boolean,\r\n default: true\r\n }, // 聚合点的图标位置是否是所有聚合内点的中心点。默认为 true。数据中如果含有权重值,以权重高的点为中心进行聚合\r\n clusterByZoomChange: {\r\n type: Boolean,\r\n default: false\r\n }, // 地图缩放过程中是否聚合。默认值 false。\r\n styles: {\r\n type: Array\r\n }, // 指定聚合后的点标记的图标样式,可缺省,缺省时为默认样式\r\n renderClusterMarker: {\r\n type: Function\r\n }, // 该方法用来实现聚合点的自定义绘制,由开发者自己实现,API 将在绘制每个聚合点的时候调用这个方法,可以实现聚合点样式的灵活设定,指定了 renderClusterMarker 后 styles 无效。\r\n renderMarker: {\r\n type: Function\r\n } // 该方法用来实现非聚合点的自定义绘制,由开发者自己实现,API 将在绘制每个非聚合点的时候调用这个方法\r\n}));\r\nconst emits = defineEmits(['init']);\r\n\r\nlet $amapComponent: AMap.MarkerCluster;\r\n\r\nconst {$$getInstance, parentInstance} = useRegister<AMap.MarkerCluster, AMap.Map>((options, parentComponent) => {\r\n return new Promise<AMap.MarkerCluster>((resolve) => {\r\n AMap.plugin(['AMap.MarkerCluster'], () => {\r\n const points = options.points;\r\n delete options.points;\r\n $amapComponent = new AMap.MarkerCluster(parentComponent, points, options);\r\n resolve($amapComponent);\r\n });\r\n });\r\n\r\n}, {\r\n emits,\r\n watchRedirectFn: {\r\n __points (value: AMap.MarkerClusterData) {\r\n if ($amapComponent) {\r\n $amapComponent.setData(value);\r\n }\r\n }\r\n },\r\n destroyComponent () {\r\n if ($amapComponent && parentInstance?.$amapComponent) {\r\n $amapComponent.setMap(null as any);\r\n $amapComponent = null as any;\r\n }\r\n },\r\n});\r\n\r\ndefineExpose({\r\n $$getInstance\r\n});\r\n\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,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,UAAA,MAAM,SAAS,OAAQ,CAAA,MAAA,CAAA;AACvB,UAAA,OAAO,OAAQ,CAAA,MAAA,CAAA;AACf,UAAA,cAAA,GAAiB,IAAI,IAAA,CAAK,aAAc,CAAA,eAAA,EAAiB,QAAQ,OAAO,CAAA,CAAA;AACxE,UAAA,OAAA,CAAQ,cAAc,CAAA,CAAA;AAAA,SACvB,CAAA,CAAA;AAAA,OACF,CAAA,CAAA;AAAA,KAEA,EAAA;AAAA,MACD,KAAA;AAAA,MACA,eAAiB,EAAA;AAAA,QACf,SAAU,KAA+B,EAAA;AACvC,UAAA,IAAI,cAAgB,EAAA;AAClB,YAAA,cAAA,CAAe,QAAQ,KAAK,CAAA,CAAA;AAAA,WAC9B;AAAA,SACF;AAAA,OACF;AAAA,MACA,gBAAoB,GAAA;AAClB,QAAI,IAAA,cAAA,KAAkB,iDAAgB,cAAgB,CAAA,EAAA;AACpD,UAAA,cAAA,CAAe,OAAO,IAAW,CAAA,CAAA;AACjC,UAAiB,cAAA,GAAA,IAAA,CAAA;AAAA,SACnB;AAAA,OACF;AAAA,KACD,CAAA,CAAA;AAED,IAAa,QAAA,CAAA;AAAA,MACX,aAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;"}