我正在使用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');
}
});
}
答案 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
});
}