Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/leon-win/geohex
Hexagonal geocoding system
https://github.com/leon-win/geohex
converting coordinate-systems geocoding geohex hexagon hexagonal hexagonal-grids
Last synced: 5 days ago
JSON representation
Hexagonal geocoding system
- Host: GitHub
- URL: https://github.com/leon-win/geohex
- Owner: leon-win
- License: mit
- Created: 2020-06-07T22:22:28.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-09-02T20:09:00.000Z (2 months ago)
- Last Synced: 2024-09-19T11:06:19.097Z (about 2 months ago)
- Topics: converting, coordinate-systems, geocoding, geohex, hexagon, hexagonal, hexagonal-grids
- Language: JavaScript
- Homepage: https://leon-win.github.io/geohex
- Size: 677 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - leon-win/geohex - Hexagonal geocoding system (others)
README
# Geohex
[![npm](https://img.shields.io/npm/v/geohex?logo=npm&style=flat-square)](https://www.npmjs.com/package/geohex)
[![Code style: Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?logo=prettier&style=flat-square)](https://prettier.io)
[![License: MIT](https://img.shields.io/github/license/leon-win/geohex?style=flat-square)](http://opensource.org/licenses/MIT)Hexagonal geocoding system, library for converting geographic coordinates to hexagonal grid cells and vice versa.
This is ECMAScript 2015 fork of [GeoHex library](http://geohex.net) which was originally made by [@sa2da](http://twitter.com/sa2da).
## Installation
```sh
npm install geohex --save
```Or grab from [jsDelivr CDN](https://www.jsdelivr.com/package/npm/geohex):
```html
```
Or from [unpkg CDN](https://unpkg.com/geohex/):
```html
```
## Usage
### ES6 Modules
```js
import Geohex from "geohex";
// or import { getCellByCode } from 'geohex'
```### CommonJS
```js
const Geohex = require("geohex");
// or const { getCellByCode } = require('geohex')
```### JS modules:
```html
import Geohex from "geohex/src/index.js";
// or import { getCellByCode } from 'geohex/src/index.js'```
### Global variable
```html
```
## Examples
[Online demo of Geohex usage](https://leon-win.github.io/geohex-examples/)
```javascript
// 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:
```javascript
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](http://www.geohex.org)
- [GeoHex TypeScript implementation](https://github.com/uupaa/GeoHex)
- [GeoHex Dart implementation](https://github.com/NiKoTron/geohex)
- [GeoHex Swift implementation](https://github.com/nekowen/GeoHex3.swift)
- [GeoHex Scala implementation](https://github.com/teralytics/geohex)
- [GeoHex Java implementation](https://github.com/chsh/geohex4j)
- [GeoHex C# implementation](https://github.com/mattak/GeoHex.cs)## License
[MIT](http://opensource.org/licenses/MIT)
© 2009 @sa2da (http://twitter.com/sa2da) http://www.geohex.org
© 2020 Leonid Vinogradov