nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

commit 4805091a235e234ec80ee5dcefa373f51735fb51
parent 41d1bf98362b693bf79f891520b2313a5694ee28
Author: Sergej Orlov <wladimirych@gmail.com>
Date:   Mon,  9 Dec 2019 22:28:23 +0100

canvasMarker: adapt to changes in new RBush

* invoke as class, not as a function
* define accessor methods in RBush subclass

Diffstat:
Msrc/lib/leaflet.layer.canvasMarkers/index.js | 26+++++++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)

diff --git a/src/lib/leaflet.layer.canvasMarkers/index.js b/src/lib/leaflet.layer.canvasMarkers/index.js @@ -1,6 +1,6 @@ import L from 'leaflet'; import './canvasMarkers.css'; -import rbush from 'rbush'; +import RBush from 'rbush'; import loadImage from 'image-promise'; import {wrapLatLngToTarget} from '~/lib/leaflet.fixes/fixWorldCopyJump'; @@ -31,6 +31,26 @@ function calcIntersectionSum(rect, rects) { return sum; } +class MarkerRBush extends RBush { + toBBox(marker) { + const x = marker.latlng.lng; + const y = marker.latlng.lat; + return { + minX: x, + minY: y, + maxX: x, + maxY: y}; + } + + compareMinX(a, b) { + return a.latlng.lng - b.latlng.lng; + } + + compareMinY(a, b) { + return a.latlng.lat - b.latlng.lat; + } +} + L.Layer.CanvasMarkers = L.GridLayer.extend({ options: { async: true, @@ -44,8 +64,8 @@ L.Layer.CanvasMarkers = L.GridLayer.extend({ initialize: function(markers, options) { L.GridLayer.prototype.initialize.call(this, options); - this.rtree = rbush(9, ['.latlng.lng', '.latlng.lat', '.latlng.lng', '.latlng.lat']); - this._regions = rbush(); + this.rtree = new MarkerRBush(9); + this._regions = new RBush(); this._iconPositions = {}; this._labelPositions = {}; this._labelPositionsZoom = null;