geohex
v0.0.7
Published
Hexagonal geocoding system, library for converting geographic coordinates to hexagonal grid cell and vice versa
Downloads
53
Maintainers
Readme
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/[email protected]/lib/geohex.min.js"></script>
Or from unpkg CDN:
<script src="https://unpkg.com/[email protected]/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