javascript - 如何从 L.Routing.control 获取距离和时间?

标签 javascript leaflet leaflet-routing-machine

我在传单 map 上绘制路线,效果很好,在控件中显示距离和预计到达时间。有没有办法提取它们并保存它们?

L.Routing.control 的代码

function getroute() {
myroutewithout = L.Routing.control({
  waypoints: [
    L.latLng(window.my_lat, window.my_lng),
    L.latLng(window.job_p_lat, window.job_p_lng)
  ],show: true, units: 'imperial',
 router: L.Routing.mapbox('API-KEY-HERE'),
  createMarker: function(i, wp, nWps) {
    if (i === 0 || i === nWps + 1) {
      // here change the starting and ending icons
      return mymarker = L.marker(wp.latLng, {
        icon: operatoricon
      });
    } else {
      return job_start = L.marker(wp.latLng, {
        icon: jobicon
      }); 
    }
  }
}).addTo(map);

最佳答案

您可以使用此 issue 中的代码实现此目的

var routeControl = L.Routing.control({...});
...
routeControl.on('routesfound', function(e) {
   var routes = e.routes;
   var summary = routes[0].summary;
   // alert distance and time in km and minutes
   alert('Total distance is ' + summary.totalDistance / 1000 + ' km and total time is ' + Math.round(summary.totalTime % 3600 / 60) + ' minutes');
});

Demo

关于javascript - 如何从 L.Routing.control 获取距离和时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53988872/

相关文章:

javascript - 带有 Leaflet.Label 的 Leaflet Markerclusterer

javascript - 如何在悬停事件上打开包含可点击内容的弹出窗口

javascript - 来自源 'file://' 的图像已被跨源资源共享策略 : 阻止加载

leaflet - 如何将默认标记替换为航点中的自定义图标(传单路由)

typescript - 如何将 leaflet-routing-machine 包含到 angular 2 typescript webpack 应用程序中

javascript - 强制javascript始终返回数组的简单方法

javascript - 如何让html适合一定的高度? (不含 wrapper )

javascript - 传单路由机的撤消/重做

javascript - 缩短 div 中每行的注释

javascript - 在 Laravel 中从 Vue 检索文件