在谷歌地图上显示多条路线

AJ.*_*AJ. 6 google-maps

我想在同一张地图上显示多条路线,但我无法这样做.

无论我做什么,我只得到一条路线.

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.

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');
Run Code Online (Sandbox Code Playgroud)

我尝试过它确实有效.


Aqu*_*irl 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
                                                    });
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)