我试图在同一张地图上显示多条路线,但我无法这样做。
无论我做什么,我只能选择一条路线。
function calcRoute() {
var start = document.getElementById('start').value;
var end = document.getElementById('end').value;
var request = {
origin: start,
destination: end,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
}
任何指针都会有所帮助。
答案 0 :(得分:15)
我遇到了同样的问题。用于Google地图的Google网上论坛的This thread显示了如何操作。
作者(Google员工)写道:
您应该能够创建两个DirectionsRenderer对象 使用相同的地图和不同的DirectionsResults。
var map = new google.maps.Map(document.getElementById("map_canvas")); function renderDirections(result) { var directionsRenderer = new google.maps.DirectionsRenderer; directionsRenderer.setMap(map); directionsRenderer.setDirections(result); } var directionsService = new google.maps.DirectionsService; function requestDirections(start, end) { directionsService.route({ origin: start, destination: end, travelMode: google.maps.DirectionsTravelMode.DRIVING }, function(result) { renderDirections(result); }); } requestDirections('Huntsville, AL', 'Boston, MA'); requestDirections('Bakersfield, CA', 'Vancouver, BC');
我尝试了它确实有效。
答案 1 :(得分:0)
您是否按以下方式尝试?
在这里,我捕获了一条路径并显示出来。您可以通过编写除此之外的pointsArray = result.routes[1].overview_path;
来执行相同操作,并将其显示在新循环中。
directionsService.route (request, function (result, status)
{
if (status == google.maps.DirectionsStatus.OK)
{
directionsDisplay.setDirections (result);
pointsArray = result.routes[0].overview_path;
var i = 0;
var j = 0;
for (j = 0; j < pointsArray.length; j++)
{
var point1 = new google.maps.Marker ({
position:pointsArray [j],
draggable:false,
map:map,
flat:true
});
}
}
});