Browse Source

Fix updated bounds for marker cluster mode

pull/3268/head
Vladyslav_Prykhodko 6 years ago
parent
commit
cffe2135f2
  1. 34
      ui-ngx/src/app/modules/home/components/widget/lib/maps/leaflet-map.ts

34
ui-ngx/src/app/modules/home/components/widget/lib/maps/leaflet-map.ts

@ -320,9 +320,13 @@ export default abstract class LeafletMap {
bounds.extend(polygon.leafletPoly.getBounds());
});
}
this.markers.forEach((marker) => {
bounds.extend(marker.leafletMarker.getLatLng());
});
if ((this.options as MarkerSettings).useClusterMarkers) {
bounds.extend(this.markersCluster.getBounds());
} else {
this.markers.forEach((marker) => {
bounds.extend(marker.leafletMarker.getLatLng());
});
}
const mapBounds = this.map.getBounds();
if (bounds.isValid() && (!this.bounds || !mapBounds.contains(bounds))) {
@ -396,16 +400,20 @@ export default abstract class LeafletMap {
private createMarker(key: string, data: FormattedData, dataSources: FormattedData[], settings: MarkerSettings,
updateBounds = true, callback?): Marker {
const newMarker = new Marker(this, this.convertPosition(data), settings, data, dataSources, this.dragMarker);
if (callback)
newMarker.leafletMarker.on('click', () => { callback(data, true) });
if (this.bounds && updateBounds)
this.fitBounds(this.bounds.extend(newMarker.leafletMarker.getLatLng()));
this.markers.set(key, newMarker);
if (!this.options.useClusterMarkers) {
this.map.addLayer(newMarker.leafletMarker);
}
return newMarker;
const newMarker = new Marker(this, this.convertPosition(data), settings, data, dataSources, this.dragMarker);
if (callback) {
newMarker.leafletMarker.on('click', () => {
callback(data, true)
});
}
if (this.bounds && updateBounds && !(this.options as MarkerSettings).useClusterMarkers) {
this.fitBounds(this.bounds.extend(newMarker.leafletMarker.getLatLng()));
}
this.markers.set(key, newMarker);
if (!this.options.useClusterMarkers) {
this.map.addLayer(newMarker.leafletMarker);
}
return newMarker;
}
private updateMarker(key: string, data: FormattedData, dataSources: FormattedData[], settings: MarkerSettings): Marker {

Loading…
Cancel
Save