Tidied up Geohash operations

This commit is contained in:
n1474335 2018-08-29 17:59:48 +00:00
parent e9fe227ed7
commit 415beaa0b0
6 changed files with 29 additions and 33 deletions

27
package-lock.json generated
View File

@ -4197,14 +4197,12 @@
"balanced-match": { "balanced-match": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"brace-expansion": { "brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"balanced-match": "^1.0.0", "balanced-match": "^1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
@ -4219,20 +4217,17 @@
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
@ -4349,8 +4344,7 @@
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"ini": { "ini": {
"version": "1.3.5", "version": "1.3.5",
@ -4362,7 +4356,6 @@
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"number-is-nan": "^1.0.0" "number-is-nan": "^1.0.0"
} }
@ -4377,7 +4370,6 @@
"version": "3.0.4", "version": "3.0.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
} }
@ -4489,8 +4481,7 @@
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
@ -4623,7 +4614,6 @@
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^1.0.0",
@ -7275,6 +7265,11 @@
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
"dev": true "dev": true
}, },
"ngeohash": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/ngeohash/-/ngeohash-0.6.0.tgz",
"integrity": "sha1-MpcT6ec9HxpG2SqrC5StuUUz9oc="
},
"nice-try": { "nice-try": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz",

View File

@ -53,9 +53,7 @@
"To MessagePack", "To MessagePack",
"From MessagePack", "From MessagePack",
"To Braille", "To Braille",
"From Braille", "From Braille"
"To Geohash",
"From Geohash"
] ]
}, },
{ {
@ -291,7 +289,9 @@
"Adler-32 Checksum", "Adler-32 Checksum",
"CRC-16 Checksum", "CRC-16 Checksum",
"CRC-32 Checksum", "CRC-32 Checksum",
"TCP/IP Checksum" "TCP/IP Checksum",
"To Geohash",
"From Geohash"
] ]
}, },
{ {

View File

@ -19,13 +19,12 @@ class FromGeohash extends Operation {
super(); super();
this.name = "From Geohash"; this.name = "From Geohash";
this.module = "Default"; this.module = "Hashing";
this.description = "Converts Geohash strings into Lat / Long coordinates. For example, <code>ww8p1r4t8</code> becomes <code>37.8324,112.5584</code>."; this.description = "Converts Geohash strings into Lat/Long coordinates. For example, <code>ww8p1r4t8</code> becomes <code>37.8324,112.5584</code>.";
this.infoURL = "https://wikipedia.org/wiki/Geohash"; this.infoURL = "https://wikipedia.org/wiki/Geohash";
this.inputType = "string"; this.inputType = "string";
this.outputType = "string"; this.outputType = "string";
this.args = [ this.args = [];
];
} }
/** /**
@ -34,8 +33,10 @@ class FromGeohash extends Operation {
* @returns {string} * @returns {string}
*/ */
run(input, args) { run(input, args) {
const coords = geohash.decode(input); return input.split("\n").map(line => {
return [coords.latitude, coords.longitude].join(","); const coords = geohash.decode(line);
return [coords.latitude, coords.longitude].join(",");
}).join("\n");
} }
} }

View File

@ -19,8 +19,8 @@ class ToGeohash extends Operation {
super(); super();
this.name = "To Geohash"; this.name = "To Geohash";
this.module = "Default"; this.module = "Hashing";
this.description = "Converts Lat / Long coordinates into a Geohash string. For example, <code>37.8324,112.5584</code> becomes <code>ww8p1r4t8</code>."; this.description = "Converts Lat/Long coordinates into a Geohash string. For example, <code>37.8324,112.5584</code> becomes <code>ww8p1r4t8</code>.";
this.infoURL = "https://wikipedia.org/wiki/Geohash"; this.infoURL = "https://wikipedia.org/wiki/Geohash";
this.inputType = "string"; this.inputType = "string";
this.outputType = "string"; this.outputType = "string";
@ -41,9 +41,11 @@ class ToGeohash extends Operation {
run(input, args) { run(input, args) {
const [precision] = args; const [precision] = args;
input = input.replace(/ /g, ""); return input.split("\n").map(line => {
if (input === "") return ""; line = line.replace(/ /g, "");
return geohash.encode(...input.split(",").map(num => parseFloat(num)), precision); if (line === "") return "";
return geohash.encode(...line.split(",").map(num => parseFloat(num)), precision);
}).join("\n");
} }
} }

View File

@ -2,7 +2,6 @@
* To Geohash tests * To Geohash tests
* *
* @author gchq77703 * @author gchq77703
*
* @copyright Crown Copyright 2018 * @copyright Crown Copyright 2018
* @license Apache-2.0 * @license Apache-2.0
*/ */

View File

@ -2,7 +2,6 @@
* To Geohash tests * To Geohash tests
* *
* @author gchq77703 * @author gchq77703
*
* @copyright Crown Copyright 2018 * @copyright Crown Copyright 2018
* @license Apache-2.0 * @license Apache-2.0
*/ */