0

我正在使用 javascript、google maps api v3 和 pgouting 寻找两点之间的路线。现在我有以下方法,当我只给出一个航路点时它可以正常工作。但是当我超过一个航路点时它不起作用。有多个航路点时的格式用此符号分隔'|'。因此例如: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');
            }
        });
    }      
4

2 回答 2

1

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

于 2013-03-03T14:16:58.327 回答
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
        });
    }
于 2013-03-03T17:46:15.087 回答