vicinityhash
TypeScript icon, indicating that this package has built-in type declarations

2.4.3 • Public • Published

vicinityhash

Given latitude, longitude and radius, this library converts a circular geofence into a set of geohashes.

This code was developed based on Ashwin Nair's algorithm.

Installation

Via npm:

npm install --save vicinityhash

Via yarn:

yarn add vicinityhash

Usage

With JavaScript:

const vicinityhash = require('vicinityhash')

const geofence = {
  latitude: 51.51,
  longitude: -0.07,
  radius: 10000 // in meters
}

const geohashes = vicinityhash.convert(geofence)

With TypeScript:

import * as vicinityhash from 'vicinityhash'

const geofence = {
  latitude: 51.51,
  longitude: -0.07,
  radius: 10000 // in meters
}

const geohashes: string[] = vicinityhash.convert(geofence)

Visual representation of the geohashes created based on the geofence:

Geohashes

Optional Configuration

Precision

const geofence = {
  latitude: 51.51,
  longitude: -0.07,
  radius: 20000
}

const config = {
  precision: 8 // 7 by default, accepts 1 to 12
}

const geohashes = vicinityhash.convert(geofence, config)

Compression

const geofence = {
  latitude: 51.51,
  longitude: -0.07,
  radius: 20000
}

const config = {
  compress: true // false by default
}

const geohashes = vicinityhash.convert(geofence, config)

Visual representation of the geohashes created based on the geofence:

Geohashes compressed

Compression Levels

const geofence = {
  latitude: 51.51,
  longitude: -0.07,
  radius: 20000
}

const config = {
  compress: true,
  compressMin: 3, // 1 by default, accepts 1 to 12
  compressMax: 6 // 12 by default, accepts 1 to 12de
}

const geohashes = vicinityhash.convert(geofence, config)

Visual representation of the geohashes created based on the geofence:

Geohashes with custom compression levels

Development

Prerequisites

Test

Run this command to start unit tests:

npm test

/vicinityhash/

    Package Sidebar

    Install

    npm i vicinityhash

    Weekly Downloads

    3

    Version

    2.4.3

    License

    Apache-2.0

    Unpacked Size

    29.4 kB

    Total Files

    6

    Last publish

    Collaborators

    • filipecorrea