我想在同一张地图上显示多条路线,但我无法这样做.
无论我做什么,我只得到一条路线.
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);
}
});
}
Run Code Online (Sandbox Code Playgroud)
任何指针都会有所帮助.
Jos*_*ank 15
我有同样的问题. 谷歌Google地图组上的这个帖子显示了如何做到这一点.
作者(谷歌员工)写道:
您应该能够创建两个DirectionsRenderer对象,每个对象使用相同的地图和不同的DirectionsResults.
Run Code Online (Sandbox Code Playgroud)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');
我尝试过它确实有效.
您是否尝试过如下?
在这里,我捕获了一条路径并显示它。您可以通过在其旁边写入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
});
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7787 次 |
| 最近记录: |