Spherical geometry utility class for WME scripts
Script này sẽ không được không được cài đặt trực tiếp. Nó là một thư viện cho các script khác để bao gồm các chỉ thị meta
// @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/