使用航点来查找路线

时间:2013-03-03 13:51:19

标签: javascript google-maps google-maps-api-3 url-routing

我正在使用javascript,google maps api v3和pgoruting找到两点之间的路线。现在我有以下方法,当我只提供一个航点时,它可以正常工作。但是当我不止一个航点时,它不起作用。使用此符号'|'对具有多个航点的格式进行了分隔。例如:36.762121,14.7866553|35.988777778,14.655444333

javascript方法如下:

   function calcRoute() {

        var all_nodes = document.getElementById('result').innerHTML;
        var node = all_nodes.split("|");

        var start = node[0];
        var end = node[node.length - 1];
        var wpts = [];

        for (var i = 1; i < node.length-1; i++) {
            wpts.push({
                location:node[i],
                stopover:true
            });
        }

        var request = {
            origin: start,
            destination: end,
            waypoints: wpts,
            travelMode: google.maps.TravelMode.DRIVING
        };

        directionsService.route(request, function (response, status) {
            if (status == google.maps.DirectionsStatus.OK) {
                directionsDisplay.setDirections(response);
            } else {
                alert('No route found');
            }
        });
    }      

2 个答案:

答案 0 :(得分:1)

实际上不正确的航点是位置数组:LatLng和stopover:true或false并且它们不使用管道分隔符请参考Waypoints

答案 1 :(得分:0)

如前所述,它可能有助于获取该位置的Google对象,它也可能有助于提供lat和long作为两个单独的实体。

    for (var i = 1; i < node.length-1; i = i + 1) {
        node[i] = node[i].split(',');
        wpts.push({
            location:new google.maps.LatLng(node[i][0], node[i][1]),
            stopover:true
        });
    }
相关问题