Skip to content

hamlog-online/hamlog-maidenhead

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Maidenhead grid conversion library

For various amateur radio needs, we at Hamlog.Online required a library to process Maidenhead grid locators in Javascript.

None of the other libraries already created by the community were suitable:

  1. Some of them believe that Maidenhead grid locators are only ever 4 or 6 characters long, when situations exist that may require one to use 8 or even 10. Some will even reject either 4 or 6, which is downright unacceptable.
  2. Some of them believe that if the grid isn't written in alternating upper and lower case, it's not valid, which is definitely not so.
  3. Some will convert a grid to coordinates without noticing that they're pointing at the corner of the grid square.

This library was created to address all the above issues and work with arbitrary precision grids. If you want to give your coordinates down to a millimeter, you can.

Usage

npm install @hamlog/maidenhead

If you're using TypeScript, you might want to use the TypeScript source code directly instead of the compiled versions:

// tsconfig.json
...
    "paths": {
      "@hamlog/maidenhead": ["./node_modules/@hamlog/maidenhead/src"],
    }
...

Examples

import {
  gridToPoint, pointToGrid, gridToBox
} from '@hamlog/maidenhead';

const coordinate = gridToPoint("FN42GV54AX");
// result: { lat: 42.895746527777774, lon: -71.45815972222222 }

const grid = pointToGrid(coordinate, 6);
// result: "FN42GV"

const gridNicer = pointToGrid(coordinate, 6, true);
// result: "FN42gv"

const box = gridToBox(grid);
// result: [ { lat: 42.875, lon: -71.5 }, { lat: 42.916666666666664, lon: -71.41666666666667 } ]

gridToPoint produces the coordinates of a point in the exact center of the grid square. gridToBox produces the coordinates of two corners of the grid square, suitable for drawing it on a map.

Tooling

  • npm run build to build for consumption.

License

This library is released under the terms of MIT license. See LICENSE.

Releases

No releases published

Packages

No packages published