mapshaper 0.5.111 → 0.5.112
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/CHANGELOG.md +5 -0
- package/mapshaper.js +361 -268
- package/package.json +1 -1
- package/www/mapshaper-gui.js +19 -16
- package/www/mapshaper.js +361 -268
package/package.json
CHANGED
package/www/mapshaper-gui.js
CHANGED
|
@@ -5992,13 +5992,13 @@
|
|
|
5992
5992
|
var records = lyr.data.getRecords();
|
|
5993
5993
|
var symbols = lyr.shapes.map(function(shp, i) {
|
|
5994
5994
|
var d = records[i];
|
|
5995
|
-
var obj =
|
|
5996
|
-
internal.svg.importSymbol(d['svg-symbol']);
|
|
5995
|
+
var obj = internal.svg.renderPoint(d);
|
|
5997
5996
|
if (!obj || !shp) return null;
|
|
5997
|
+
obj.properties.class = 'mapshaper-svg-symbol';
|
|
5998
5998
|
obj.properties.transform = getSvgSymbolTransform(shp[0], ext);
|
|
5999
5999
|
obj.properties['data-id'] = i;
|
|
6000
6000
|
return obj;
|
|
6001
|
-
});
|
|
6001
|
+
}).filter(Boolean);
|
|
6002
6002
|
var obj = internal.getEmptyLayerForSVG(lyr, {});
|
|
6003
6003
|
obj.children = symbols;
|
|
6004
6004
|
return internal.svg.stringify(obj);
|
|
@@ -7687,7 +7687,7 @@
|
|
|
7687
7687
|
|
|
7688
7688
|
// update symbol by re-rendering it
|
|
7689
7689
|
function updateSymbol2(node, d, id) {
|
|
7690
|
-
var o = internal.svg.
|
|
7690
|
+
var o = internal.svg.renderStyledLabel(d); // TODO: symbol support
|
|
7691
7691
|
var activeLayer = hit.getHitTarget().layer;
|
|
7692
7692
|
var xy = activeLayer.shapes[id][0];
|
|
7693
7693
|
var g = document.createElementNS('http://www.w3.org/2000/svg', 'g');
|
|
@@ -9238,12 +9238,14 @@
|
|
|
9238
9238
|
function reposition(target, type, ext) {
|
|
9239
9239
|
var container = el.findChild('.' + target.svg_id).node();
|
|
9240
9240
|
var elements;
|
|
9241
|
-
if (type == '
|
|
9242
|
-
elements =
|
|
9243
|
-
El.findAll('.mapshaper-svg-symbol', container);
|
|
9241
|
+
if (type == 'symbol') {
|
|
9242
|
+
elements = El.findAll('.mapshaper-svg-symbol', container);
|
|
9244
9243
|
repositionSymbols(elements, target.layer, ext);
|
|
9245
9244
|
} else if (type == 'furniture') {
|
|
9246
9245
|
repositionFurniture(container, target.layer, ext);
|
|
9246
|
+
} else {
|
|
9247
|
+
// container.getElementsByTagName('text')
|
|
9248
|
+
error('Unsupported symbol type:', type);
|
|
9247
9249
|
}
|
|
9248
9250
|
}
|
|
9249
9251
|
|
|
@@ -9273,14 +9275,15 @@
|
|
|
9273
9275
|
_svg.clear();
|
|
9274
9276
|
}
|
|
9275
9277
|
layers.forEach(function(lyr) {
|
|
9276
|
-
var
|
|
9277
|
-
if (!svgType || svgType == 'label') { // svg labels may have canvas dots
|
|
9278
|
+
var isSvgLayer = internal.layerHasSvgSymbols(lyr.layer) || internal.layerHasLabels(lyr.layer);
|
|
9279
|
+
//if (!svgType || svgType == 'label') { // svg labels may have canvas dots
|
|
9280
|
+
if (!isSvgLayer) { // svg labels may have canvas dots
|
|
9278
9281
|
drawCanvasLayer(lyr, _mainCanv);
|
|
9279
9282
|
}
|
|
9280
|
-
if (
|
|
9281
|
-
_svg.reposition(lyr,
|
|
9282
|
-
} else if (
|
|
9283
|
-
_svg.drawLayer(lyr,
|
|
9283
|
+
if (isSvgLayer && action == 'nav') {
|
|
9284
|
+
_svg.reposition(lyr, 'symbol');
|
|
9285
|
+
} else if (isSvgLayer) {
|
|
9286
|
+
_svg.drawLayer(lyr, 'symbol');
|
|
9284
9287
|
}
|
|
9285
9288
|
});
|
|
9286
9289
|
};
|
|
@@ -9332,9 +9335,9 @@
|
|
|
9332
9335
|
|
|
9333
9336
|
function getSvgLayerType(layer) {
|
|
9334
9337
|
var type = null;
|
|
9335
|
-
if (internal.
|
|
9336
|
-
type = '
|
|
9337
|
-
} else if (internal.
|
|
9338
|
+
if (internal.layerHasSvgSymbols(layer)) {
|
|
9339
|
+
type = 'symbol'; // also label + symbol
|
|
9340
|
+
} else if (internal.layerHasLabels(layer)) {
|
|
9338
9341
|
type = 'symbol';
|
|
9339
9342
|
}
|
|
9340
9343
|
return type;
|