a utility Library to create and work with GeoCoordinates
A tiny library to help you gettting things done with geospatial coordinates.
npm install geocoordinate
const {
GeoCoordinate,
BoundingBox
} = require('geocoordinate');
const brandenburgerTor = new GeoCoordinate([52.51626877497768, 13.377935641833488]);
const coord200mToNorth = brandenburgerTor.pointAtDistance(200, 0); // instance of GeoCoordinate: { coordinate: [ 52.518067418189524, 13.377935641833488 ] }
const potsdamerPlatz = new GeoCoordinate({
latitude: 52.50947253231671,
longitude: 13.37661188095808
});
brandenburgerTor.distanceTo(potsdamerPlatz); // 761.6555386291442
// Distance in meters
const westminsterAbbay = new GeoCoordinate(51.499382976649365, -0.12724540716209276);
brandenburgerTor.quickDistanceTo(westminsterAbbay); // 932075.8108608712
brandenburgerTor.preciseDistanceTo(westminsterAbbay); // 930681.893582993
const oldBbox = new BoundingBox(); // Old way to instantiate BoundingBox, see below for more convenient method
bbox.pushCoordinate(52.51626877497768, 13.377935641833488);
bbox.pushCoordinate(51.499382976649365, -0.12724540716209276);
const newBbox = BoundingBox.fromCoordinates([52.51, 13.37], [51.49, -0.12])
newBbox.box();
/* {
topLeftLatitude: 52.51,
topLeftLongitude: -0.12,
bottomRightLatitude: 51.49,
bottomRightLongitude: 13.37
} */
newBbox.contains(52.50947253231671, 13.37661188095808); // true
oldBbox.centerLatitude();
// 52.00782587581352
oldBbox.centerLongitude();
// 6.625345117335698
Usage:
new GeoCoordinate([1,1]);
new GeoCoordinate(32, 17.4);
new GeoCoordinate(62.1, 24.3, 70); // Altitude = 70m
new GeoCoordinate({
latitude: 6,
longitude: 18
});
Returns array [latitude, longitude[, altitude]]
.
Sorts arr
in place by distance to reference point.
const potsdamerPlatz = new GeoCoordinate({
latitude: 52.50947253231671,
longitude: 13.37661188095808
});
const arr = [
[51, 23],
{latitude: 54, longitude: 16},
new GeoCoordinate(64, 32)
];
potsdamerPlatz.sortArrayByReferencePoint(arr);
// arr is sorted now
Calculates quickly distance from this
to point
. Not recommended for long distances. Returns meters.
Calculates precise distance from this
to point
. Returns meters.
Calculates a distance between two points, assuming they are on a plain area, correcting by actual latitude distortion. Will produce bad results for long distances (>>500km) and points very close to the poles.
Calculates the coordinate that is a given number of meters from this coordinate at the given angle
- @param {number} distance the distance in meters the new coordinate is way from this coordinate.
- @param {number} bearing the angle in degrees at which the new point will be from the old point. In radians, clockwise from north.
- @returns {GeoCoordinate} a new instance of this class with only the latitude and longitude set.
The same as .pointAtDistance
but angle is given in radians.
Returns latitude of current point
Returns longitude of current point
Return altitude of the point or 0.
Constructor doesn't take arguments.
const bb = new BoundingBox();
bb.pushCoordinate(52.51626877497768, 13.377935641833488);
bb.pushCoordinate({latitude: 44, longitude: 6});
const bbox = BoundingBox.fromCoordinates([32, 53], [33, 54]);
Checks if point
is contained in bounding box.
const bbox = BoundingBox.fromCoordinates([32, 53], [33, 54]);
bbox.contains(new GeoCoordinate(23, 44));
bbox.contains([32.5, 54.5]);