From a3ea952eede7b2e276fbba1aafc68295329e060d Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 9 Nov 2023 10:34:25 +0000 Subject: [PATCH] handle invalid lat or lon more obviously skip rather than stop. Bump to 4.3.2 --- CHANGELOG.md | 1 + README.md | 1 + package.json | 2 +- worldmap/worldmap.js | 14 +++++++++++--- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 648e8bb..ef0cf19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ### Change Log for Node-RED Worldmap + - v4.3.2 - Fix geojson popup missing label name. - v4.3.1 - Small fix to icon transparency, and routing detail. - v4.3.0 - Add support for PMtiles files. - v4.2.1 - Revert use of optional chaining to extend life slightly. Issue #252 diff --git a/README.md b/README.md index cae08cd..ba85640 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ Feel free to [![](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D% ### Updates +- v4.3.2 - Fix geojson popup missing label name. - v4.3.1 - Small fix to icon transparency, and routing detail. - v4.3.0 - Add support for PMtiles files. - v4.2.1 - Revert use of optional chaining to extend life slightly. Issue #252 diff --git a/package.json b/package.json index 5366da4..53c6e71 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "node-red-contrib-web-worldmap", - "version": "4.3.1", + "version": "4.3.2", "description": "A Node-RED node to provide a web page of a world map for plotting things on.", "dependencies": { "@turf/bezier-spline": "~6.5.0", diff --git a/worldmap/worldmap.js b/worldmap/worldmap.js index 1e907c4..05bdd35 100644 --- a/worldmap/worldmap.js +++ b/worldmap/worldmap.js @@ -117,7 +117,7 @@ console.log("CONNECT TO",location.pathname + 'socket'); var handleData = function(data) { if (Array.isArray(data)) { - //console.log("ARRAY"); + //console.log("ARRAY:",data.length); for (var prop in data) { if (data[prop].command) { doCommand(data[prop].command); delete data[prop].command; } if (data[prop].hasOwnProperty("name")) { @@ -1716,8 +1716,16 @@ function setMarker(data) { delete data.position; ll = new L.LatLng((data.lat*1), (data.lon*1)); } - else if (data.hasOwnProperty("lat") && data.hasOwnProperty("lon")) { ll = new L.LatLng((data.lat*1), (data.lon*1)); } - else if (data.hasOwnProperty("latitude") && data.hasOwnProperty("longitude")) { ll = new L.LatLng((data.latitude*1), (data.longitude*1)); } + else if (data.hasOwnProperty("lat") && data.hasOwnProperty("lon")) { + if (isNaN(data.lat*1)) { console.log("Invalid lat: lat:",data.lat, " - lon:",data.lon); return; } + if (isNaN(data.lon*1)) { console.log("Invalid lon: lat:",data.lat, " - lon:",data.lon); return; } + ll = new L.LatLng((data.lat*1), (data.lon*1)); + } + else if (data.hasOwnProperty("latitude") && data.hasOwnProperty("longitude")) { + if (isNaN(data.latitude*1)) { console.log("Invalid latitude: lat:",data.latitude, " - lon:",data.longitude); return; } + if (isNaN(data.longitude*1)) { console.log("Invalid longitude: lat:",data.latitude, " - lon:",data.longitude); return; } + ll = new L.LatLng((data.latitude*1), (data.longitude*1)); + } else { // console.log("No location:",data); return;