• <bdo id='XqErf'></bdo><ul id='XqErf'></ul>
    1. <i id='XqErf'><tr id='XqErf'><dt id='XqErf'><q id='XqErf'><span id='XqErf'><b id='XqErf'><form id='XqErf'><ins id='XqErf'></ins><ul id='XqErf'></ul><sub id='XqErf'></sub></form><legend id='XqErf'></legend><bdo id='XqErf'><pre id='XqErf'><center id='XqErf'></center></pre></bdo></b><th id='XqErf'></th></span></q></dt></tr></i><div id='XqErf'><tfoot id='XqErf'></tfoot><dl id='XqErf'><fieldset id='XqErf'></fieldset></dl></div>
      <legend id='XqErf'><style id='XqErf'><dir id='XqErf'><q id='XqErf'></q></dir></style></legend>

        <small id='XqErf'></small><noframes id='XqErf'>

        <tfoot id='XqErf'></tfoot>

        如何计算像geojson.io这样的Leaflet中折线的距离?

        时间:2023-08-09
        • <bdo id='qn6V6'></bdo><ul id='qn6V6'></ul>
            <tbody id='qn6V6'></tbody>

              • <legend id='qn6V6'><style id='qn6V6'><dir id='qn6V6'><q id='qn6V6'></q></dir></style></legend>

                  <small id='qn6V6'></small><noframes id='qn6V6'>

                  <tfoot id='qn6V6'></tfoot>

                • <i id='qn6V6'><tr id='qn6V6'><dt id='qn6V6'><q id='qn6V6'><span id='qn6V6'><b id='qn6V6'><form id='qn6V6'><ins id='qn6V6'></ins><ul id='qn6V6'></ul><sub id='qn6V6'></sub></form><legend id='qn6V6'></legend><bdo id='qn6V6'><pre id='qn6V6'><center id='qn6V6'></center></pre></bdo></b><th id='qn6V6'></th></span></q></dt></tr></i><div id='qn6V6'><tfoot id='qn6V6'></tfoot><dl id='qn6V6'><fieldset id='qn6V6'></fieldset></dl></div>
                • 本文介绍了如何计算像geojson.io这样的Leaflet中折线的距离?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我正在使用 Mapbox 和 Leaflet 绘制地图,我应该让用户绘制多边形并计算并显示该多边形的面积,我还需要让用户绘制一条折线并显示折线的距离.

                  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 a polyline and show the distance of the polyline.

                  我已经算出了多边形区域的特征,但我不知道如何计算折线的距离.

                  I have figured out the polygon area feature but I cannot figure out how to calculate the distance of a polyline.

                  我的代码如下:

                  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 开发人员.欢迎任何帮助.:)

                  Is there a method in the LGeo lib itself which will help me calculate the distance of the polyline? The devs at geogson.io also have a way to calculate the distance but I cannot seem to figure it out looking at their code. I am not a seasoned Javascript developer. Any help is welcome. :)

                  推荐答案

                  所以我终于自己想出了一个算法.我基本上找到了包含折线的所有 latlngs 的折线的属性,然后我让它通过一个循环,我使用 Leaflet 中的 distanceTo 方法来计算距离点之间并不断将它们添加到 totalDistance 变量中.

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

                  这篇关于如何计算像geojson.io这样的Leaflet中折线的距离?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:来自“file://"的图像已被跨源资源共享策略阻 下一篇:隐藏“显示:无"时如何渲染传单地图父母

                  相关文章

                  最新文章

                • <legend id='0KXJq'><style id='0KXJq'><dir id='0KXJq'><q id='0KXJq'></q></dir></style></legend>

                    <small id='0KXJq'></small><noframes id='0KXJq'>

                    <tfoot id='0KXJq'></tfoot>

                    • <bdo id='0KXJq'></bdo><ul id='0KXJq'></ul>
                      <i id='0KXJq'><tr id='0KXJq'><dt id='0KXJq'><q id='0KXJq'><span id='0KXJq'><b id='0KXJq'><form id='0KXJq'><ins id='0KXJq'></ins><ul id='0KXJq'></ul><sub id='0KXJq'></sub></form><legend id='0KXJq'></legend><bdo id='0KXJq'><pre id='0KXJq'><center id='0KXJq'></center></pre></bdo></b><th id='0KXJq'></th></span></q></dt></tr></i><div id='0KXJq'><tfoot id='0KXJq'></tfoot><dl id='0KXJq'><fieldset id='0KXJq'></fieldset></dl></div>