Spherical geometry utility class for WME scripts
Dieses Skript sollte nicht direkt installiert werden. Es handelt sich hier um eine Bibliothek für andere Skripte, welche über folgenden Befehl in den Metadaten eines Skriptes eingebunden wird // @require https://update.greasyfork.org/scripts/571719/1785947/GeoUtils.js
Spherical geometry utility class for WME (Waze Map Editor) userscripts.
Provides geodesic calculations on a spherical Earth model: bearings, angles, Haversine distances, destination points, and great-circle intersections. All coordinates use [longitude, latitude] order in degrees.
Load via @require in a userscript header:
// @require https://greasyfork.org/scripts/.../GeoUtils.user.js
Then use the global GeoUtils class:
const bearing = GeoUtils.getBearing([30.52, 50.45], [-0.13, 51.51]);
const distance = GeoUtils.getDistance([30.52, 50.45], [-0.13, 51.51]);
| Method | Description |
|---|---|
getBearing(pA, pB) |
Initial bearing from pA to pB (0-360) |
findAngle(p1, p2, p3) |
Interior angle at vertex p2 (0-180) |
getDistance(pA, pB) |
Distance in meters (Haversine) |
getAngularDistance(pA, pB) |
Distance in radians |
getDestination(point, bearing, distRad) |
Point at given bearing and angular distance |
findIntersection(pA, pB, pC, angle) |
Point on line AB making given angle with C |
findRightAngleIntersection(pA, pB, pC) |
Perpendicular foot from C onto line AB |
npm install
npm run build
npm test
Author homepage: https://anton.shevchuk.name/
Author pet projects: https://hohli.com/
Support author: https://donate.hohli.com/