Pracuję nad mapą z Mapbox i ulotką i mam pozwolić użytkownikowi narysować wielokąty, obliczyć i pokazać, że są tego wielokąta, a także muszę pozwolić użytkownikowi narysować polilinię i pokazać odległość polilinii.Jak obliczyć odległość polilinii w ulotce takiej jak geojson.io?
Wykreśliłem funkcję obszaru wielokąta, ale nie wiem, jak obliczyć odległość polilinii.
Mój kod wygląda następująco:
loadScript('https://api.tiles.mapbox.com/mapbox.js/plugins/leaflet-draw/v0.2.2/leaflet.draw.js', function(){
loadScript('https://api.tiles.mapbox.com/mapbox.js/plugins/leaflet-geodesy/v0.1.0/leaflet-geodesy.js', function(){
var featureGroup = L.featureGroup().addTo(map);
var drawControl = new L.Control.Draw({
edit: {
featureGroup: featureGroup
},
draw: {
polygon: true,
polyline: true,
rectangle: false,
circle: false,
marker: false
}
}).addTo(map);
map.on('draw:created', showPolygonArea);
map.on('draw:edited', showPolygonAreaEdited);
function showPolygonAreaEdited(e) {
e.layers.eachLayer(function(layer) {
showPolygonArea({ layer: layer });
});
}
function showPolygonArea(e) {
var type = e.layerType,
layer = e.layer;
if (type === 'polygon') {
featureGroup.clearLayers();
featureGroup.addLayer(e.layer);
e.layer.bindPopup(((LGeo.area(e.layer)/1000000) * 0.62137).toFixed(2) + ' mi<sup>2</sup>');
e.layer.openPopup();
}
if (type === 'polyline') {
featureGroup.clearLayers();
featureGroup.addLayer(e.layer);
// What do I do different here to calculate the distance of the polyline?
// Is there a method in the LGeo lib itself?
// e.layer.bindPopup(((LGeo.area(e.layer)/1000000) * 0.62137).toFixed(2) + ' mi<sup>2</sup>');
e.layer.openPopup();
}
}
});
});
Czy istnieje metoda w LGeo lib sobie co pomoże mi obliczyć odległość polilinii? Deweloperzy pod numerem geogson.io również mają sposób na obliczenie odległości, ale nie potrafię tego rozgryźć patrząc na ich kod. Nie jestem doświadczonym programistą JavaScript. Każda pomoc jest mile widziana. :)
Bravo, idealne rozwiązanie! A co z obliczaniem obszaru koła? Jak mogę uzyskać promień okręgu (utworzony lub edytowany)? – serifsadi