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.
Via npm:
npm install --save vicinityhash
Via yarn:
yarn add vicinityhash
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:
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)
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:
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:
Run this command to start unit tests:
npm test