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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mapshaper",
3
- "version": "0.5.111",
3
+ "version": "0.5.112",
4
4
  "description": "A tool for editing vector datasets for mapping and GIS.",
5
5
  "keywords": [
6
6
  "shapefile",
@@ -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 = type == 'label' ? internal.svg.importStyledLabel(d) :
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.importStyledLabel(d); // TODO: symbol support
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 == 'label' || type == 'symbol') {
9242
- elements = type == 'label' ? container.getElementsByTagName('text') :
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 svgType = getSvgLayerType(lyr.layer);
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 (svgType && action == 'nav') {
9281
- _svg.reposition(lyr, svgType);
9282
- } else if (svgType) {
9283
- _svg.drawLayer(lyr, svgType);
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.layerHasLabels(layer)) {
9336
- type = 'label';
9337
- } else if (internal.layerHasSvgSymbols(layer)) {
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;