Leaflet Routing Machine waypoints 添加为标记
Leaflet Routing Machine waypoints added as markers
我正在尝试使用存储在数据库中的 waypoints 在我的网络应用程序中创建传单路由机器路由。我首先创建控件:
var routeControl = L.Routing.control({waypoints: [null]}).addTo(map);
getTestRoute("1");
函数'getTestRoute'以lat/long对的形式从数据库中提取我的waypoints并将它们添加到控件中,函数如下:
function getTestRoute(route){
$.ajax({
url: './get_route.php',
type: 'POST',
dataType: 'JSON',
data: {
getRoute: route
},
success: function (res) {
$.each(res,function(key,value){
var newLatLng = new L.LatLng(res[key].latitude, res[key].longitude);
routeControl.spliceWaypoints(0, 0, newLatLng);
})
}
});
}
我的问题是,我没有在地图上看到路线,而是看到我的 waypoints(总共五个)作为标记添加到地图上,它们之间没有路线。
请大家帮忙!!!
这是我的问题 fiddle:http://jsfiddle.net/c4yfy4ek/46/
正如在 fiddle 上看到的那样,点之间没有创建任何路线,并且点被添加为标记(我假设这是意外的??)。
问题是 spliceWaypoints
与 Leaflet Routing Machine 中未记录的功能结合使用。
创建控件时,它会自动添加 waypoints 以便路线始终具有起点和终点,但尚未提供此类 waypoints。这意味着:无论你做什么,getWaypoints
总是 return 一个至少有两个条目的数组;如果未提供,这些 waypoints 的 latLng
属性将设置为 undefined
,表示尚未提供位置。
在有问题的代码中,控件已创建,并且将由 Leaflet Routing Machine 隐式添加两个 waypoints,位置为 undefined
。稍后,您添加了几个新的 waypoints,但隐含的两个 waypoints 仍然存在,没有位置。不会计算任何路线,因为有两个 waypoints 缺少位置。
解决方法是先构建waypoints的数组,然后调用setWaypoints
,而不是spliceWaypoints
.
查看 fiddle 的更新版本:http://jsfiddle.net/c4yfy4ek/53/
我正在尝试使用存储在数据库中的 waypoints 在我的网络应用程序中创建传单路由机器路由。我首先创建控件:
var routeControl = L.Routing.control({waypoints: [null]}).addTo(map);
getTestRoute("1");
函数'getTestRoute'以lat/long对的形式从数据库中提取我的waypoints并将它们添加到控件中,函数如下:
function getTestRoute(route){
$.ajax({
url: './get_route.php',
type: 'POST',
dataType: 'JSON',
data: {
getRoute: route
},
success: function (res) {
$.each(res,function(key,value){
var newLatLng = new L.LatLng(res[key].latitude, res[key].longitude);
routeControl.spliceWaypoints(0, 0, newLatLng);
})
}
});
}
我的问题是,我没有在地图上看到路线,而是看到我的 waypoints(总共五个)作为标记添加到地图上,它们之间没有路线。
请大家帮忙!!!
这是我的问题 fiddle:http://jsfiddle.net/c4yfy4ek/46/
正如在 fiddle 上看到的那样,点之间没有创建任何路线,并且点被添加为标记(我假设这是意外的??)。
问题是 spliceWaypoints
与 Leaflet Routing Machine 中未记录的功能结合使用。
创建控件时,它会自动添加 waypoints 以便路线始终具有起点和终点,但尚未提供此类 waypoints。这意味着:无论你做什么,getWaypoints
总是 return 一个至少有两个条目的数组;如果未提供,这些 waypoints 的 latLng
属性将设置为 undefined
,表示尚未提供位置。
在有问题的代码中,控件已创建,并且将由 Leaflet Routing Machine 隐式添加两个 waypoints,位置为 undefined
。稍后,您添加了几个新的 waypoints,但隐含的两个 waypoints 仍然存在,没有位置。不会计算任何路线,因为有两个 waypoints 缺少位置。
解决方法是先构建waypoints的数组,然后调用setWaypoints
,而不是spliceWaypoints
.
查看 fiddle 的更新版本:http://jsfiddle.net/c4yfy4ek/53/