add distance & elevation on tracks
This commit is contained in:
@@ -275,27 +275,45 @@ function initSpotMessages(aoMessages, aoTracks) {
|
||||
|
||||
//Tracks, colors & popup
|
||||
var oTracks = L.geoJson(aoTracks, {
|
||||
style: function(oTrack) {
|
||||
return self.tmp(['track-type-styles', oTrack.properties.type]);
|
||||
},
|
||||
onEachFeature: function(feature, oLayer) {
|
||||
var asProperties = feature.properties;
|
||||
style: function(oTrack) {
|
||||
return self.tmp(['track-type-styles', oTrack.properties.type]);
|
||||
},
|
||||
onEachFeature: function(feature, oLayer) {
|
||||
var asProperties = feature.properties;
|
||||
var $Tooltip = $('<div>', {'class':'track_tooltip'});
|
||||
$('<p>', {'class':'name'}).addIcon('fa-track-'+asProperties.type, true).append(asProperties.name).appendTo($Tooltip);
|
||||
if(asProperties.Name != asProperties.description) $('<p>', {'class':'description'}).text(asProperties.description).appendTo($Tooltip);
|
||||
|
||||
|
||||
var aiCoords = feature.geometry.coordinates;
|
||||
if(aiCoords) {
|
||||
var iDistance = 0;
|
||||
//var iElevDrop = 0;
|
||||
var iElevGain = 0;
|
||||
for (var i = 1; i < aiCoords.length; i++) {
|
||||
var oCurrPoint = new L.LatLng(aiCoords[i][1], aiCoords[i][0]);
|
||||
var oPrevPoint = new L.LatLng(aiCoords[i - 1][1], aiCoords[i - 1][0]);
|
||||
var iElevDelta = aiCoords[i][2] - aiCoords[i - 1][2];
|
||||
|
||||
iDistance += oCurrPoint.distanceTo(oPrevPoint);
|
||||
//iElevDrop += Math.min(iElevDelta, 0);
|
||||
iElevGain += Math.max(iElevDelta, 0);
|
||||
}
|
||||
$('<p>', {'class':'distance'}).addIcon('fa-distance fa-fw', true).append(Math.round(iDistance/1000)+'km').appendTo($Tooltip);
|
||||
$('<p>', {'class':'elevation'}).addIcon('fa-elevation fa-fw', true).append(iElevGain+'m').appendTo($Tooltip);
|
||||
}
|
||||
|
||||
oLayer
|
||||
.bindPopup($Tooltip[0])
|
||||
.on('mouseover', function(e) {
|
||||
.on('mouseover', function(e) {
|
||||
var popup = e.target.getPopup();
|
||||
popup.setLatLng(e.latlng).openOn(self.tmp('map'));
|
||||
})
|
||||
.on('mouseout', function(e) {
|
||||
e.target.closePopup();
|
||||
e.target.closePopup();
|
||||
});
|
||||
|
||||
if(asProperties.type != 'hitchhiking') (oElev.addData.bind(oElev))(feature, oLayer);
|
||||
}
|
||||
}
|
||||
}).addTo(oMap);
|
||||
|
||||
//Centering map
|
||||
|
||||
Reference in New Issue
Block a user