传单路由机的驱动时间和距离

时间:2015-10-22 18:10:36

标签: maps leaflet

我正在使用JQuery Datatables,带有OSM磁贴的Leaflet和Leaflet Routing Machine为CRM构建嵌入式内容。地图上的标记和表的行基于SAME JSON数据,我正在构建两个库之间的交互(使用SHARED JavaScript函数)。例如,单击“数据表”行时,将突出显示该行,在相应的地图标记上打开一个弹出窗口,并使用LRM计算路径,该路径将路线放置在地图上。相反,当单击地图标记时,会发生所有相同的事件,因为我正在调用SAME函数。

默认情况下,行程LRM创建隐藏在地图上,但我想解析驱动时间和距离,并将它们插入共享功能打开的弹出窗口中。我花了四天的时间倾注API文档并在互联网上搜索有关如何从Itinerary对象访问这些值的明确说明或代码示例,但没有成功。我已经检查了每个对象,我可以弄清楚如何登录到控制台,但我需要的数据是在我尝试访问它们时出现“未定义”的属性。

请从头到尾,如何访问行程摘要?

当我启动地图时,我还使用空路点启动路由控制:

ctrl = L.Routing.control({ 
            waypoints: null, 
            units: 'imperial', 
            show: false, 
            createMarker: function() { return null; }
        }).addTo(map);  

单击标记/行时,我调用此函数:

function clickEffects(id, latlon) {

// set waypoints for routing control
ctrl.setWaypoints([ ctr, latlon])    

// scroll the table to the row for the clicked marker
table.$('tr.selected').removeClass('selected');         
var idx = table.row("#" + id).index()
table.row(idx).show().draw(false);
table.row(idx).nodes().to$().addClass('selected');


// create and open a popup
var popup = L.popup()
    .setLatLng(latlon)
    .setContent("Dan was here!!!")
    .openOn(map);
}

1 个答案:

答案 0 :(得分:1)

想出来:

  1. 在全球范围内声明了弹出窗口
  2. 创建标记时绑定默认“正在加载...”内容
  3. 在共享功能中,在新的弹出内容中设置div与目标ID (除了新鲜检索的ajax内容。
  4. 在“routesfound”事件监听器中,使用JQuery插入格式化 在目标div上开车时间和距离。
  5. 像魅力一样工作。现在只需要扩展ajax数据......