Geohex
Hexagonal geocoding system, library for converting geographic coordinates to hexagonal grid cells and vice versa.
This is ECMAScript 2015 fork of GeoHex library which was originally made by @sa2da.
Installation
npm install geohex --save
Or grab from jsDelivr CDN:
<script src="https://cdn.jsdelivr.net/npm/geohex@0.0.7/lib/geohex.min.js"></script>
Or from unpkg CDN:
<script src="https://unpkg.com/geohex@0.0.7/lib/geohex.min.js"></script>
Usage
ES6 Modules
import Geohex from "geohex";
// or import { getCellByCode } from 'geohex'
CommonJS
const Geohex = require("geohex");
// or const { getCellByCode } = require('geohex')
JS modules:
<script type="module">
import Geohex from "geohex/src/index.js";
// or import { getCellByCode } from 'geohex/src/index.js'
</script>
Global variable
<script src="geohex/lib/geohex.min.js"></script>
Examples
// Get Geohex cell instance by code
const geohexCell = Geohex.getCellByCode('QH3360')
// Get Geohex cell instance by geographic coordinates and zoom level
const geohexCell = Geohex.getCellByLocation(59.943201, 30.324086, 4)
// Get Geohex cell instance by cell coordinates and zoomLevel
const geohexCell = Geohex.getCellByXY(326, 203, 4)
// Get Geohex cell coordinates by geographic coordinates and zoom level
Geohex.getXYByLocation(59.943201, 30.324086, 4):
// { x: 326, y: 203 }
// Get Geohex cell coordinates by code
Geohex.getXYByCode('QH3360')
// { x: 326, y: 203 }
Geohex cell instance
Geohex cell instance is hexagon grid cell with properties and methods:
console.log(JSON.stringify(geohexCell, null, 2))
// {
// "lat": 59.97788999458348,
// "lon": 30.37037037037038,
// "x": 326,
// "y": 203,
// "code": "QH3360"
// }
// Cell zoom level
geohexCell.getZoomLevel()
// 4
// Cell side length in degrees
geohexCell.getHexSize():
// 9162.098006401464
// Geographic coordinates of hexagon corners
geohexCell.getHexCoords():
// [
// { lat: 59.97788999458348, lon: 30.205761316872437 },
// { lat: 60.0491386517641, lon: 30.288065843621407 },
// { lat: 60.0491386517641, lon: 30.45267489711935 },
// { lat: 59.97788999458348, lon: 30.53497942386832 },
// { lat: 59.90648768479527, lon: 30.45267489711935 },
// { lat: 59.90648768479527, lon: 30.288065843621407 }
// ]
Other implementations
- Original GeoHex library
- GeoHex TypeScript implementation
- GeoHex Dart implementation
- GeoHex Swift implementation
- GeoHex Scala implementation
- GeoHex Java implementation
- GeoHex C# implementation
License
© 2009 @sa2da (http://twitter.com/sa2da) http://www.geohex.org
© 2020 Leonid Vinogradov