Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

latlon-geohash

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

latlon-geohash

Gustavo Niemeyer’s geocoding system

  • 2.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

geohash

Functions to convert a geohash to/from a latitude/longitude point, and to determine bounds of a geohash cell and find neighbours of a geohash.

Note this version 2 uses ES classes and modules: for older browsers (or Node.js <8.0.0), v1.1.0 is ES5-based.

API

  • Geohash.encode(lat, lon, [precision]): encode latitude/longitude point to geohash of given precision (number of characters in resulting geohash); if precision is not specified, it is inferred from precision of latitude/longitude values.
  • Geohash.decode(geohash): return { lat, lon } of centre of given geohash, to appropriate precision.
  • Geohash.bounds(geohash): return { sw, ne } bounds of given geohash.
  • Geohash.adjacent(geohash, direction): return adjacent cell to given geohash in specified direction (N/S/E/W).
  • Geohash.neighbours(geohash): return all 8 adjacent cells (n/ne/e/se/s/sw/w/nw) to given geohash.

Note to obtain neighbours as an array, you can use

const neighboursObj = Geohash.neighbours(geohash);
const neighboursArr = Object.keys(neighboursObj).map(n => neighboursObj[n]);

The parent of a geocode is simply geocode.slice(0, -1).

If you want the geohash converted from Base32 to Base4, you can e.g.:

parseInt(Geohash.encode(52.20, 0.12, 6), 32).toString(4);

Usage in browser

Geohash can be used in the browser by taking a local copy, or loading it from jsDelivr: for example,

<!doctype html><title>geohash example</title><meta charset="utf-8">
<script type="module">
    import Geohash from 'https://cdn.jsdelivr.net/npm/latlon-geohash@2.0.0';

    const geohash = Geohash.encode(52.20, 0.12, 6);
    console.assert(geohash == 'u120fw');

    const latlon = Geohash.decode('u120fw');
    console.assert(JSON.stringify(latlon) == '{"lat":52.1988,"lon":0.115}');
</script>

Usage in Node.js

Geohash can be used in a Node.js app from npm (currently the esm package is required to load ES-modules):

$ npm install latlon-geohash esm
$ node -r esm
> import Geohash from 'latlon-geohash';
> const geohash = Geohash.encode(52.20, 0.12, 6);
> console.assert(geohash == 'u120fw');
> const latlon = Geohash.decode('u120fw');
> console.assert(JSON.stringify(latlon) == '{"lat":52.1988,"lon":0.115}');

Further details

More information (with interactive conversion) at www.movable-type.co.uk/scripts/geohash.html.

Full JsDoc at www.movable-type.co.uk/scripts/js/latlon-geohash/docs/Geohash.html.

Keywords

FAQs

Package last updated on 08 Jul 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc