Javascript 作为标记添加的传单路由机器航路点

Javascript 作为标记添加的传单路由机器航路点,javascript,routing,leaflet,Javascript,Routing,Leaflet,我正在尝试使用数据库中存储的航路点在我的web应用程序中创建传单路由机器路线。我首先创建控件: var routeControl = L.Routing.control({waypoints: [null]}).addTo(map); getTestRoute("1"); 函数“getTestRoute”将我的航路点作为lat/long对从db中拉入,并将它们添加到控件中,函数如下: function getTestRoute(route){ $.ajax({ url: '

我正在尝试使用数据库中存储的航路点在我的web应用程序中创建传单路由机器路线。我首先创建控件:

var routeControl = L.Routing.control({waypoints: [null]}).addTo(map);
getTestRoute("1");
函数“getTestRoute”将我的航路点作为lat/long对从db中拉入,并将它们添加到控件中,函数如下:

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

        })

    }

    });
}
我的问题是,我看到的不是地图上的路线,而是将我的航路点(总共五个)添加到地图上作为标记,它们之间没有路线

请帮忙

以下是我的问题:

正如在小提琴上所看到的,没有在点之间创建任何路线,点被添加为标记(我假设这是意外的??)


问题在于在传单发送机器中使用
拼接航路点
与未记录的功能相结合

创建控制时,它将自动添加航路点,以便路线始终具有起始和结束航路点,前提是尚未提供此类航路点。这意味着:无论您做什么,
getWaypoints
将始终返回至少包含两个条目的数组;如果未提供,这些航路点的
latLng
属性将设置为
undefined
,表示尚未提供位置

在所讨论的代码中,将创建控件,并通过传单路由机器隐式添加两个航路点,其中
位置未定义。稍后,您将添加两个新的航路点,但隐式的两个航路点仍然保留,没有位置。由于缺少两个航路点,因此不会计算路线

解决方案是首先构建航路点阵列,然后调用
设置航路点
,而不是
拼接航路点


请参阅fiddle的更新版本:

问题在于在传单传送机器中使用了
拼接航路点
和未记录的功能

创建控制时,它将自动添加航路点,以便路线始终具有起始和结束航路点,前提是尚未提供此类航路点。这意味着:无论您做什么,
getWaypoints
将始终返回至少包含两个条目的数组;如果未提供,这些航路点的
latLng
属性将设置为
undefined
,表示尚未提供位置

在所讨论的代码中,将创建控件,并通过传单路由机器隐式添加两个航路点,其中
位置未定义。稍后,您将添加两个新的航路点,但隐式的两个航路点仍然保留,没有位置。由于缺少两个航路点,因此不会计算路线

解决方案是首先构建航路点阵列,然后调用
设置航路点
,而不是
拼接航路点


请参阅fiddle的更新版本:

问题在于在传单传送机器中使用了
拼接航路点
和未记录的功能

创建控制时,它将自动添加航路点,以便路线始终具有起始和结束航路点,前提是尚未提供此类航路点。这意味着:无论您做什么,
getWaypoints
将始终返回至少包含两个条目的数组;如果未提供,这些航路点的
latLng
属性将设置为
undefined
,表示尚未提供位置

在所讨论的代码中,将创建控件,并通过传单路由机器隐式添加两个航路点,其中
位置未定义。稍后,您将添加两个新的航路点,但隐式的两个航路点仍然保留,没有位置。由于缺少两个航路点,因此不会计算路线

解决方案是首先构建航路点阵列,然后调用
设置航路点
,而不是
拼接航路点


请参阅fiddle的更新版本:

问题在于在传单传送机器中使用了
拼接航路点
和未记录的功能

创建控制时,它将自动添加航路点,以便路线始终具有起始和结束航路点,前提是尚未提供此类航路点。这意味着:无论您做什么,
getWaypoints
将始终返回至少包含两个条目的数组;如果未提供,这些航路点的
latLng
属性将设置为
undefined
,表示尚未提供位置

在所讨论的代码中,将创建控件,并通过传单路由机器隐式添加两个航路点,其中
位置未定义。稍后,您将添加两个新的航路点,但隐式的两个航路点仍然保留,没有位置。由于缺少两个航路点,因此不会计算路线

解决方案是首先构建航路点阵列,然后调用
设置航路点
,而不是
拼接航路点


请参阅fiddle的更新版本:

尝试从“航路点:[null]”中删除“null”。如果这没有帮助,请提供一个JSFIDLE,我来看看。是的,@gusper所说的-数组中的
null
条目将作为空航路点保留在列表的开头;另外,检查JavaScript控制台中是否存在错误,因为
null
可能会导致LRM中出现错误…并且在控制台中删除“航路点:[null]”中的“null”时不会出现错误。如果这没有帮助,请提供一个JSFIDLE,我来看看。是的,@gusper所说的-数组中的
null
条目将作为空航路点保留在列表的开头;另外,检查JavaScript控制台中是否存在错误,因为
null
可能会导致LRM中出现错误…并且在控制台中删除“航路点:[null]”中的“null”时不会出现错误。如果这没有帮助,请提供