From 2da18a34f5997d7abb605ba83ffa2ad9e9f76f3e Mon Sep 17 00:00:00 2001 From: Matthew Bloch Date: Wed, 5 Jun 2024 07:53:04 -0400 Subject: [PATCH] v0.6.97 --- CHANGELOG.md | 4 ++++ package-lock.json | 4 ++-- package.json | 2 +- src/gui/gui-context-menu.mjs | 2 +- src/gui/gui-edit-labels.mjs | 4 +++- src/gui/gui-import-utils.mjs | 13 +++++++++++++ src/gui/gui-svg-labels.mjs | 1 + 7 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 src/gui/gui-import-utils.mjs diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d54c22a..a48facc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +v0.6.97 +* [web] Prompt user to project imported files to match selected layer, when relevant. +* [svg] Add fill="none" to unstyled rectangle layers, to prevent map frame rectangles from displaying with SVG default black polygon fill. + v0.6.96 * Bug fix diff --git a/package-lock.json b/package-lock.json index 991e72f3..919d532f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mapshaper", - "version": "0.6.96", + "version": "0.6.97", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mapshaper", - "version": "0.6.96", + "version": "0.6.97", "license": "MPL-2.0", "dependencies": { "@placemarkio/tokml": "^0.3.3", diff --git a/package.json b/package.json index 40122e60..cfec1a0d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mapshaper", - "version": "0.6.96", + "version": "0.6.97", "description": "A tool for editing vector datasets for mapping and GIS.", "keywords": [ "shapefile", diff --git a/src/gui/gui-context-menu.mjs b/src/gui/gui-context-menu.mjs index 962e51dc..5014aeed 100644 --- a/src/gui/gui-context-menu.mjs +++ b/src/gui/gui-context-menu.mjs @@ -72,7 +72,7 @@ export function ContextMenu() { addCoords(e.lonlat_coordinates); } if (e.projected_coordinates) { - addMenuLabel('easting, northing'); + addMenuLabel('x, y'); addCoords(e.projected_coordinates); } diff --git a/src/gui/gui-edit-labels.mjs b/src/gui/gui-edit-labels.mjs index afd7ccd6..3471248a 100644 --- a/src/gui/gui-edit-labels.mjs +++ b/src/gui/gui-edit-labels.mjs @@ -155,7 +155,9 @@ export function initLabelDragging(gui, ext, hit) { function updateTextNode(node, d) { var a = d['text-anchor']; if (a) node.setAttribute('text-anchor', a); - setMultilineAttribute(node, 'dx', d.dx || 0); + // dx data property is applied to svg x property + // setMultilineAttribute(node, 'dx', d.dx || 0); + setMultilineAttribute(node, 'x', d.dx || 0); node.setAttribute('y', d.dy || 0); } diff --git a/src/gui/gui-import-utils.mjs b/src/gui/gui-import-utils.mjs new file mode 100644 index 00000000..6e9c7f7c --- /dev/null +++ b/src/gui/gui-import-utils.mjs @@ -0,0 +1,13 @@ +import { showPrompt } from './gui-alert'; +import { internal } from './gui-core'; + +export async function considerReprojecting(gui, dataset, opts) { + var mapCRS = gui.map.getActiveLayerCRS(); + var dataCRS = internal.getDatasetCRS(dataset); + if (!dataCRS || !mapCRS || internal.crsAreEqual(mapCRS, dataCRS)) return; + var msg = `The input file ${dataset?.info?.input_files[0] || ''} has a different projection from the current selected layer. Would you like to reproject it to match?`; + var reproject = await showPrompt(msg, 'Reproject file?'); + if (reproject) { + internal.projectDataset(dataset, dataCRS, mapCRS, {densify: true}); + } +} diff --git a/src/gui/gui-svg-labels.mjs b/src/gui/gui-svg-labels.mjs index fd9e1208..8ec19d91 100644 --- a/src/gui/gui-svg-labels.mjs +++ b/src/gui/gui-svg-labels.mjs @@ -1,5 +1,6 @@ import { utils } from './gui-core'; import { internal } from './gui-core'; + export function isMultilineLabel(textNode) { return textNode.childNodes.length > 1; }