commit a4662605c372d7a5d41a9135adb6d1f866bc5d67
parent 7d8bd6cb8e472c2a05c8490709041631c11e33be
Author: Sergej Orlov <wladimirych@gmail.com>
Date: Fri, 16 Dec 2016 18:39:45 +0300
[canvas markers] removed race condition while loading markers
Diffstat:
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/src/lib/leaflet.layer.canvasMarkers/index.js b/src/lib/leaflet.layer.canvasMarkers/index.js
@@ -180,7 +180,8 @@ L.Layer.CanvasMarkers = L.GridLayer.extend({
const
iconUrls = [],
markerJobs = {};
- var markers = this.rtree.search(
+
+ const pointsForMarkers = this.rtree.search(
{
minX: iconsBounds.getWest(),
minY: iconsBounds.getSouth(),
@@ -189,7 +190,14 @@ L.Layer.CanvasMarkers = L.GridLayer.extend({
}
);
- for (let marker of markers) {
+ const pointsForLabels = this.rtree.search({
+ minX: labelsBounds.getWest(), minY: labelsBounds.getSouth(),
+ maxX: labelsBounds.getEast(), maxY: labelsBounds.getNorth()
+ }
+ );
+
+
+ for (let marker of pointsForMarkers) {
const p = this._map.project(marker.latlng, zoom);
let icon = marker.icon;
if (typeof icon === 'function') {
@@ -233,12 +241,7 @@ L.Layer.CanvasMarkers = L.GridLayer.extend({
job.iconCenter = [x + imgW / 2, y + imgH / 2];
job.iconSize = [imgW, imgH];
}
- markers = this.rtree.search({
- minX: labelsBounds.getWest(), minY: labelsBounds.getSouth(),
- maxX: labelsBounds.getEast(), maxY: labelsBounds.getNorth()
- }
- );
- for (let marker of markers) {
+ for (let marker of pointsForLabels) {
const markerId = L.stamp(marker);
const job = markerJobs[markerId];
let label = job.marker.label;