Add Navigation Arrow and simplify static page
This commit is contained in:
+24
-3
@@ -1,12 +1,33 @@
|
||||
(function (ns) {
|
||||
'use strict';
|
||||
|
||||
const radians = value => value * Math.PI / 180;
|
||||
const degrees = value => value * 180 / Math.PI;
|
||||
const normalizeDegrees = value => (value % 360 + 360) % 360;
|
||||
|
||||
ns.Distance = {
|
||||
meters(a, b) {
|
||||
const dLat = radians(b.lat - a.lat); const dLon = radians(b.lon - a.lon);
|
||||
const h = Math.sin(dLat / 2) ** 2 + Math.cos(radians(a.lat)) * Math.cos(radians(b.lat)) * Math.sin(dLon / 2) ** 2;
|
||||
const dLat = radians(b.lat - a.lat);
|
||||
const dLon = radians(b.lon - a.lon);
|
||||
const h = Math.sin(dLat / 2) ** 2
|
||||
+ Math.cos(radians(a.lat)) * Math.cos(radians(b.lat)) * Math.sin(dLon / 2) ** 2;
|
||||
return 2 * 6371000 * Math.asin(Math.sqrt(h));
|
||||
},
|
||||
format(meters) { return meters < 1000 ? `${Math.round(meters)} m` : `${(meters / 1000).toFixed(1)} km`; }
|
||||
|
||||
bearing(a, b) {
|
||||
const lat1 = radians(a.lat);
|
||||
const lat2 = radians(b.lat);
|
||||
const dLon = radians(b.lon - a.lon);
|
||||
const y = Math.sin(dLon) * Math.cos(lat2);
|
||||
const x = Math.cos(lat1) * Math.sin(lat2)
|
||||
- Math.sin(lat1) * Math.cos(lat2) * Math.cos(dLon);
|
||||
return normalizeDegrees(degrees(Math.atan2(y, x)));
|
||||
},
|
||||
|
||||
normalizeDegrees,
|
||||
|
||||
format(meters) {
|
||||
return meters < 1000 ? `${Math.round(meters)} m` : `${(meters / 1000).toFixed(1)} km`;
|
||||
}
|
||||
};
|
||||
}(window.Wegwichtel));
|
||||
|
||||
Reference in New Issue
Block a user