Hexagonal geocoding system
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.
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>
import Geohex from "geohex";
// or import { getCellByCode } from 'geohex'
const Geohex = require("geohex");
// or const { getCellByCode } = require('geohex')
<script type="module">
import Geohex from "geohex/src/index.js";
// or import { getCellByCode } from 'geohex/src/index.js'
</script>
<script src="geohex/lib/geohex.min.js"></script>
// 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 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 }
// ]
© 2009 @sa2da (http://twitter.com/sa2da) http://www.geohex.org
© 2020 Leonid Vinogradov