Я работаю над картой с Mapbox и Leaflet, и я должен позволить пользователю нарисовать полигоны, рассчитать и показать, являются ли эти полигоны, и я также должен позволить пользователю нарисовать полилинию и показать расстояние от полилинии.Как рассчитать расстояние полилинии в листе, например, geojson.io?
Я выяснил функцию области многоугольника, но не могу понять, как рассчитать расстояние от полилинии.
Мой код выглядит следующим образом:
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();
}
}
});
});
Есть ли способ в LGeo Lib себе, который поможет мне рассчитать расстояние ломаной линии? У разработчиков geogson.io также есть способ рассчитать расстояние, но я не могу понять, как это выглядит, глядя на их код. Я не опытный разработчик Javascript. Любая помощь приветствуется. :)
Bravo, идеальное решение! Как насчет расчета площади круга? Как я могу получить радиус круга (созданный или отредактированный)? – serifsadi