2.4.3 • Published 4 months ago

vicinityhash v2.4.3

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
4 months ago

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
2.4.3

4 months ago

2.4.1

4 months ago

2.4.2

4 months ago

2.3.0

1 year ago

2.1.2

1 year ago

2.2.0

1 year ago

2.1.1

1 year ago

2.4.0

12 months ago

2.2.5

1 year ago

2.2.4

1 year ago

2.2.6

1 year ago

2.1.0

2 years ago

2.0.2

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago