CoordinateSet
A specialist Set for handling longitude and latitude coordinate arrays. The easiest way to understand the use case for this library is the following code snippet:
const set = new Set();
set.add([32.95, 83.31]);
set.add([32.95, 83.31]);
expect(set.size).toBe(2);
This behaves as we would expect for a JavaScript Set
- it creates two entries for each Array
reference. In simple terms this library allows coordinate Arrays (of type [number, number]
, where [0] is a valid longitude and [1] is valid latitude, which are often seen in formats like GeoJSON) to be treated as values rather than references, like so:
const set = new CoordinateSet();
set.add([32.95, 83.31]);
set.add([32.95, 83.31]);
expect(set.size).toBe(1);
The API matches the original Set
API as closely as possible. The library also does basic validation on the input array to make sure it is a valid longitude, latitude pair.
Install
npm install coordinate-set
Usage
import { CoordinateSet } from "./src/coordinate-set";
const coordinateSet = new CoordinateSet();
coordinateSet.add([51.509865, -0.118092]);
coordinateSet.add([51.509865, -0.118092]);
coordinateSet.has([42.509865, -0.231312]);
coordinateSet.add([42.509865, -0.231312]);
coordinateSet.size;
coordinateSet.delete([51.509865, -0.118092]);
coordinateSet.size;
coordinate.clear();
coordinateSet.size;
coordinateSet.forEach((value, index, set) => {
});
const spread = [...coordinateSet];
const values = [];
for (let entry of coordinateSet) {
values.push(entry);
}
License
MIT