2.4.3 • Published 2 years ago
vicinityhash v2.4.3
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 vicinityhashVia yarn:
yarn add vicinityhashUsage
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:

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:

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:

Development
Prerequisites
Test
Run this command to start unit tests:
npm test