mapshaper 0.6.48 → 0.6.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/mapshaper.js +571 -238
- package/package.json +1 -1
- package/www/mapshaper-gui.js +14 -9
- package/www/mapshaper.js +571 -238
package/package.json
CHANGED
package/www/mapshaper-gui.js
CHANGED
|
@@ -6829,16 +6829,18 @@
|
|
|
6829
6829
|
}
|
|
6830
6830
|
|
|
6831
6831
|
function getPointerHitTest(mapLayer, ext, interactionMode) {
|
|
6832
|
-
var shapeTest,
|
|
6832
|
+
var shapeTest, targetLayer;
|
|
6833
6833
|
if (!mapLayer || !internal.layerHasGeometry(mapLayer.layer)) {
|
|
6834
6834
|
return function() {return {ids: []};};
|
|
6835
6835
|
}
|
|
6836
6836
|
shapeTest = getShapeHitTest(mapLayer, ext, interactionMode);
|
|
6837
|
-
svgTest = getSvgHitTest(mapLayer);
|
|
6838
6837
|
|
|
6839
6838
|
// e: pointer event
|
|
6840
6839
|
return function(e) {
|
|
6841
6840
|
var p = ext.translatePixelCoords(e.x, e.y);
|
|
6841
|
+
// update SVG hit test on each test, in case SVG layer has been redrawn
|
|
6842
|
+
// and the symbol container has changed
|
|
6843
|
+
var svgTest = getSvgHitTest(mapLayer);
|
|
6842
6844
|
var data = shapeTest(p[0], p[1]) || {ids:[]};
|
|
6843
6845
|
var svgData = svgTest(e); // null or a data object
|
|
6844
6846
|
if (svgData) { // mouse is over an SVG symbol
|
|
@@ -10375,9 +10377,10 @@
|
|
|
10375
10377
|
_furniture.css('pointer-events', 'none');
|
|
10376
10378
|
|
|
10377
10379
|
this.drawMainLayers = function(layers, action) {
|
|
10380
|
+
var needSvgRedraw = action != 'nav' && action != 'hover';
|
|
10378
10381
|
if (skipMainLayerRedraw(action)) return;
|
|
10379
10382
|
_mainCanv.prep(_ext);
|
|
10380
|
-
if (
|
|
10383
|
+
if (needSvgRedraw) {
|
|
10381
10384
|
_svg.clear();
|
|
10382
10385
|
}
|
|
10383
10386
|
layers.forEach(function(lyr) {
|
|
@@ -10386,7 +10389,7 @@
|
|
|
10386
10389
|
if (!isSvgLayer) { // svg labels may have canvas dots
|
|
10387
10390
|
drawCanvasLayer(lyr, _mainCanv);
|
|
10388
10391
|
}
|
|
10389
|
-
if (isSvgLayer &&
|
|
10392
|
+
if (isSvgLayer && !needSvgRedraw) {
|
|
10390
10393
|
_svg.reposition(lyr, 'symbol');
|
|
10391
10394
|
} else if (isSvgLayer) {
|
|
10392
10395
|
_svg.drawLayer(lyr, 'symbol');
|
|
@@ -11282,9 +11285,10 @@
|
|
|
11282
11285
|
} else {
|
|
11283
11286
|
_overlayLyr = null;
|
|
11284
11287
|
}
|
|
11285
|
-
|
|
11286
|
-
//
|
|
11287
|
-
drawLayers();
|
|
11288
|
+
|
|
11289
|
+
// 'hover' avoids redrawing all svg symbols when only highlight needs to refresh
|
|
11290
|
+
drawLayers('hover');
|
|
11291
|
+
// drawLayers();
|
|
11288
11292
|
}
|
|
11289
11293
|
|
|
11290
11294
|
function getDisplayOptions() {
|
|
@@ -11486,10 +11490,11 @@
|
|
|
11486
11490
|
|
|
11487
11491
|
// action:
|
|
11488
11492
|
// 'nav' map was panned/zoomed -- only map extent has changed
|
|
11489
|
-
// 'hover' highlight has changed -- only
|
|
11493
|
+
// 'hover' highlight has changed -- only refresh overlay
|
|
11490
11494
|
// (default) anything could have changed
|
|
11491
11495
|
function drawLayers2(action) {
|
|
11492
|
-
|
|
11496
|
+
// sometimes styles need to be regenerated with 'hover' action (when)
|
|
11497
|
+
var layersMayHaveChanged = action != 'nav'; // !action;
|
|
11493
11498
|
var fullBounds;
|
|
11494
11499
|
var contentLayers = getDrawableContentLayers();
|
|
11495
11500
|
var furnitureLayers = getDrawableFurnitureLayers();
|