diff --git a/src/platforms/app-plus/view/components/map/index.vue b/src/platforms/app-plus/view/components/map/index.vue index 44322201e679c553ba3bfa679b472f4cfc2d50c3..0d540f68be3c7f4a7f110d8c8bdb1d7b7f29cc34 100644 --- a/src/platforms/app-plus/view/components/map/index.vue +++ b/src/platforms/app-plus/view/components/map/index.vue @@ -194,7 +194,8 @@ export default { mapStyle.center = new plus.maps.Point(this.longitude, this.latitude) } const map = this.map = plus.maps.create(this.$page.id + '-map-' + (this.id || Date.now()), mapStyle) - map.__markers__ = {} + map.__markers__ = [] + map.__markers_map__ = {} map.__lines__ = [] map.__circles__ = [] map.setZoom(parseInt(this.scale)) @@ -317,16 +318,18 @@ export default { } } nativeMap.addOverlay(nativeMarker) - nativeMap.__markers__[id + ''] = nativeMarker + nativeMap.__markers__.push(nativeMarker) + nativeMap.__markers_map__[id + ''] = nativeMarker }) }, _clearMarkers () { const map = this.map - const data = map.__markers__ - for (const key in data) { - map.removeOverlay(data[key]) - } - map.__markers__ = {} + const markers = map.__markers__ + markers.forEach(marker => { + map.removeOverlay(marker) + }) + map.__markers__ = [] + map.__markers_map__ = {} }, _addMarkers (markers, clear) { if (this.map) { @@ -352,7 +355,7 @@ export default { markerId }) { if (this.map) { - const nativeMarker = this.map.__markers__[markerId + ''] + const nativeMarker = this.map.__markers_map__[markerId + ''] if (nativeMarker) { nativeMarker.setPoint(new plus.maps.Point(destination.longitude, destination.latitude)) }