add geodesic lines and distance info to Leaflet/OSM (#60)
This commit is contained in:
parent
f4259eddd1
commit
06665b8335
|
|
@ -113,7 +113,9 @@ LLocator.prototype.addListener = function (e, f) {
|
||||||
//
|
//
|
||||||
|
|
||||||
function LCall() {
|
function LCall() {
|
||||||
this._line = L.polyline([[0, 0], [0, 0]], {
|
// https://github.com/henrythasler/Leaflet.Geodesic
|
||||||
|
// inherits from leaflet's polyline
|
||||||
|
this._line = L.geodesic([[0, 0], [0, 0]], {
|
||||||
dashArray : [4, 4],
|
dashArray : [4, 4],
|
||||||
dashOffset : 0,
|
dashOffset : 0,
|
||||||
color : '#000000',
|
color : '#000000',
|
||||||
|
|
@ -130,6 +132,13 @@ LCall.prototype.setMap = function(map = null) {
|
||||||
|
|
||||||
LCall.prototype.setEnds = function(lat1, lon1, lat2, lon2) {
|
LCall.prototype.setEnds = function(lat1, lon1, lat2, lon2) {
|
||||||
this._line.setLatLngs([[lat1, lon1], [lat2, lon2]]);
|
this._line.setLatLngs([[lat1, lon1], [lat2, lon2]]);
|
||||||
|
const totalDistance = (this._line.statistics.totalDistance !== undefined
|
||||||
|
? (this._line.statistics.totalDistance > 10000)
|
||||||
|
? (this._line.statistics.totalDistance / 1000).toFixed(0) + ' km'
|
||||||
|
: (this._line.statistics.totalDistance).toFixed(0) + ' m'
|
||||||
|
: 'invalid')
|
||||||
|
// options for setText(): https://github.com/makinacorpus/Leaflet.TextPath
|
||||||
|
this._line.setText(' ► ' + totalDistance, { offset: 10});
|
||||||
};
|
};
|
||||||
|
|
||||||
LCall.prototype.setColor = function(color) {
|
LCall.prototype.setColor = function(color) {
|
||||||
|
|
|
||||||
|
|
@ -265,6 +265,10 @@ MapManager.prototype.initializeMap = function(receiver_gps, api_key, weather_key
|
||||||
// add zoom control
|
// add zoom control
|
||||||
new L.Control.Zoom({ position: 'bottomright' }).addTo(map);
|
new L.Control.Zoom({ position: 'bottomright' }).addTo(map);
|
||||||
|
|
||||||
|
// load geodesic and textpath plugins plugin
|
||||||
|
$.getScript('https://cdn.jsdelivr.net/npm/leaflet.geodesic');
|
||||||
|
$.getScript('https://cdn.jsdelivr.net/npm/leaflet-textpath@1.2.3/leaflet.textpath.min.js');
|
||||||
|
|
||||||
// add night overlay
|
// add night overlay
|
||||||
$.getScript('https://unpkg.com/@joergdietrich/leaflet.terminator@1.0.0/L.Terminator.js').done(function () {
|
$.getScript('https://unpkg.com/@joergdietrich/leaflet.terminator@1.0.0/L.Terminator.js').done(function () {
|
||||||
var pane = map.createPane('nite');
|
var pane = map.createPane('nite');
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue