From 1293a865c159acb2ecfc5c60815d23d5fadc1bee Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Mon, 29 Nov 2021 21:26:24 +0000 Subject: [PATCH] Let geohash handle null island and add test --- parsers/geohash/70-geohash.js | 1 + parsers/geohash/package.json | 4 ++-- test/parsers/geohash/70-geohash_spec.js | 15 +++++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/parsers/geohash/70-geohash.js b/parsers/geohash/70-geohash.js index 7a41ede5..b15b4d8c 100644 --- a/parsers/geohash/70-geohash.js +++ b/parsers/geohash/70-geohash.js @@ -69,6 +69,7 @@ module.exports = function(RED) { var len = parseInt(value.precision || 9); if (len < 1) { len = 1; } if (len > 9) { len = 9; } + value.precision = len; if (typeof lat === 'number' && typeof lon === 'number') { value.geohash = geohash.encode(lat, lon, len); RED.util.setMessageProperty(msg,node.property,value); diff --git a/parsers/geohash/package.json b/parsers/geohash/package.json index 04179100..41e233e8 100644 --- a/parsers/geohash/package.json +++ b/parsers/geohash/package.json @@ -1,9 +1,9 @@ { "name" : "node-red-node-geohash", - "version" : "0.1.9", + "version" : "0.1.10", "description" : "A Node-RED node to encode and decode lat,lon pairs to a geohash.", "dependencies" : { - "ngeohash" : "0.6.0" + "ngeohash" : "^0.6.3" }, "repository" : { "type":"git", diff --git a/test/parsers/geohash/70-geohash_spec.js b/test/parsers/geohash/70-geohash_spec.js index ffc2dc0c..05af4fdc 100644 --- a/test/parsers/geohash/70-geohash_spec.js +++ b/test/parsers/geohash/70-geohash_spec.js @@ -111,6 +111,21 @@ describe('geohash node', function() { }); }); + it('should convert payload object lat,lon to geohash', function(done) { + var flow = [{"id":"n1", "type":"geohash", func:"geohash", gap:0, wires:[["n2"]] }, + {id:"n2", type:"helper"} ]; + helper.load(testNode, flow, function() { + var n1 = helper.getNode("n1"); + var n2 = helper.getNode("n2"); + n2.on("input", function(msg) { + msg.should.have.a.property("payload"); + msg.payload.should.have.a.property("geohash", "7zzzzzzzz"); + done(); + }); + n1.emit("input", {payload:{latitude:0,longitude:0,precision:10}}); + }); + }); + it('should convert payload object lat,lon to geohash (low precision)', function(done) { var flow = [{"id":"n1", "type":"geohash", func:"geohash", gap:0, wires:[["n2"]] }, {id:"n2", type:"helper"} ];