improvement: 聚合marker 支持设置普通marker样式

This commit is contained in:
thinkinggis 2020-01-27 11:47:37 +08:00
parent 7348ca889d
commit 2a776809a6
1 changed files with 13 additions and 8 deletions

View File

@ -76,7 +76,7 @@ export default class MarkerLayer extends EventEmitter {
public addMarker(marker: IMarker) { public addMarker(marker: IMarker) {
const cluster = this.markerLayerOption.cluster; const cluster = this.markerLayerOption.cluster;
if (cluster) { if (cluster) {
this.addPoint(marker); this.addPoint(marker, this.markers.length);
} }
this.markers.push(marker); this.markers.push(marker);
} }
@ -113,14 +113,17 @@ export default class MarkerLayer extends EventEmitter {
this.removeAllListeners(); this.removeAllListeners();
} }
private addPoint(marker: IMarker) { private addPoint(marker: IMarker, id: number) {
const { lng, lat } = marker.getLnglat(); const { lng, lat } = marker.getLnglat();
const feature: IPointFeature = { const feature: IPointFeature = {
geometry: { geometry: {
type: 'Point', type: 'Point',
coordinates: [lng, lat], coordinates: [lng, lat],
}, },
properties: marker.getExtData(), properties: {
...marker.getExtData(),
marker_id: id,
},
}; };
this.points.push(feature); this.points.push(feature);
} }
@ -200,11 +203,13 @@ export default class MarkerLayer extends EventEmitter {
return marker; return marker;
} }
private normalMarker(feature: any) { private normalMarker(feature: any) {
const marker = new Marker().setLnglat({ const marker_id = feature.properties.marker_id;
lng: feature.geometry.coordinates[0], return marker_id
lat: feature.geometry.coordinates[1], ? new Marker().setLnglat({
}); lng: feature.geometry.coordinates[0],
return marker; lat: feature.geometry.coordinates[1],
})
: this.markers[marker_id];
} }
private update() { private update() {
const zoom = this.mapsService.getZoom(); const zoom = this.mapsService.getZoom();