Commit cffe2135f2149cb748ca5e355f40e146640b27c5
1 parent
9b92f67b
Fix updated bounds for marker cluster mode
Showing
1 changed file
with
21 additions
and
13 deletions
@@ -320,9 +320,13 @@ export default abstract class LeafletMap { | @@ -320,9 +320,13 @@ export default abstract class LeafletMap { | ||
320 | bounds.extend(polygon.leafletPoly.getBounds()); | 320 | bounds.extend(polygon.leafletPoly.getBounds()); |
321 | }); | 321 | }); |
322 | } | 322 | } |
323 | - this.markers.forEach((marker) => { | ||
324 | - bounds.extend(marker.leafletMarker.getLatLng()); | ||
325 | - }); | 323 | + if ((this.options as MarkerSettings).useClusterMarkers) { |
324 | + bounds.extend(this.markersCluster.getBounds()); | ||
325 | + } else { | ||
326 | + this.markers.forEach((marker) => { | ||
327 | + bounds.extend(marker.leafletMarker.getLatLng()); | ||
328 | + }); | ||
329 | + } | ||
326 | 330 | ||
327 | const mapBounds = this.map.getBounds(); | 331 | const mapBounds = this.map.getBounds(); |
328 | if (bounds.isValid() && (!this.bounds || !mapBounds.contains(bounds))) { | 332 | if (bounds.isValid() && (!this.bounds || !mapBounds.contains(bounds))) { |
@@ -396,16 +400,20 @@ export default abstract class LeafletMap { | @@ -396,16 +400,20 @@ export default abstract class LeafletMap { | ||
396 | 400 | ||
397 | private createMarker(key: string, data: FormattedData, dataSources: FormattedData[], settings: MarkerSettings, | 401 | private createMarker(key: string, data: FormattedData, dataSources: FormattedData[], settings: MarkerSettings, |
398 | updateBounds = true, callback?): Marker { | 402 | updateBounds = true, callback?): Marker { |
399 | - const newMarker = new Marker(this, this.convertPosition(data), settings, data, dataSources, this.dragMarker); | ||
400 | - if (callback) | ||
401 | - newMarker.leafletMarker.on('click', () => { callback(data, true) }); | ||
402 | - if (this.bounds && updateBounds) | ||
403 | - this.fitBounds(this.bounds.extend(newMarker.leafletMarker.getLatLng())); | ||
404 | - this.markers.set(key, newMarker); | ||
405 | - if (!this.options.useClusterMarkers) { | ||
406 | - this.map.addLayer(newMarker.leafletMarker); | ||
407 | - } | ||
408 | - return newMarker; | 403 | + const newMarker = new Marker(this, this.convertPosition(data), settings, data, dataSources, this.dragMarker); |
404 | + if (callback) { | ||
405 | + newMarker.leafletMarker.on('click', () => { | ||
406 | + callback(data, true) | ||
407 | + }); | ||
408 | + } | ||
409 | + if (this.bounds && updateBounds && !(this.options as MarkerSettings).useClusterMarkers) { | ||
410 | + this.fitBounds(this.bounds.extend(newMarker.leafletMarker.getLatLng())); | ||
411 | + } | ||
412 | + this.markers.set(key, newMarker); | ||
413 | + if (!this.options.useClusterMarkers) { | ||
414 | + this.map.addLayer(newMarker.leafletMarker); | ||
415 | + } | ||
416 | + return newMarker; | ||
409 | } | 417 | } |
410 | 418 | ||
411 | private updateMarker(key: string, data: FormattedData, dataSources: FormattedData[], settings: MarkerSettings): Marker { | 419 | private updateMarker(key: string, data: FormattedData, dataSources: FormattedData[], settings: MarkerSettings): Marker { |