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

后端 未结 3 2140
天涯浪人
天涯浪人 2021-02-15 03:29

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

3条回答
  •  一生所求
    2021-02-15 03:57

    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();
    }
    

提交回复
热议问题