Отображение нескольких маршрутов на карте Google - PullRequest
6 голосов
/ 28 января 2012

Я пытаюсь отобразить несколько маршрутов на одной карте, но не могу этого сделать.

Независимо от того, что я делаю, я получаю только один маршрут.полезно.

Ответы [ 2 ]

15 голосов
/ 08 сентября 2012

У меня была такая же проблема. В этой теме в группе Google для карт Google показано, как это сделать.

Автор (сотрудник 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');

Я попробовал, и это работает.

0 голосов
/ 30 января 2012

Вы пробовали следующим образом?
Здесь я захватил один путь и показал его. Вы можете сделать то же самое, написав 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
                                                    });
                }
            }
        });
...