How to calculate the distance of a polyline in Leaflet like geojson.io?

后端 未结 4 1725
日久生厌
日久生厌 2021-02-15 03:04

I am working on a map with Mapbox and Leaflet and I am supposed to let the user draw polygons and calculate and show the are of that polygon and I also need to let the user draw

4条回答
  •  臣服心动
    2021-02-15 03:35

    So I finally came up with an algorithm myself. I basically found the property of the polyline which holds all the latlngs of the polyline and then I made it go through a loop and I used the distanceTo method from Leaflet to calculate distance between points and kept on adding them to a totalDistance variable.

    if (type === 'polyline') {
        featureGroup.clearLayers();
        featureGroup.addLayer(e.layer);
    
        // Calculating the distance of the polyline
        var tempLatLng = null;
        var totalDistance = 0.00000;
        $.each(e.layer._latlngs, function(i, latlng){
            if(tempLatLng == null){
                tempLatLng = latlng;
                return;
            }
    
            totalDistance += tempLatLng.distanceTo(latlng);
            tempLatLng = latlng;
        });
        e.layer.bindPopup((totalDistance).toFixed(2) + ' meters');
        e.layer.openPopup();
    }
    

提交回复
热议问题