Обработка нескольких маршрутов с путевыми точками в Google Maps v3

Я хочу отображать несколько направлений с перетаскиваемыми путевыми точками и сохранять каждую путевую точку, связанную с источником, местом назначения в объекте или базе данных, всякий раз, когда вызывается Route.prototype.setWayPoints().

Этот парень делает это по одному маршруту с перетаскиваемыми путевыми точками (и сохраняет их в базе данных).

http://vikku.info/programming/google-maps-v3/draggable-directions/saving-draggable-directions-saving-waypoints-google-directions-google-maps-v3.htm

Я хочу несколько маршрутов, а не один. Я много гуглил, но ничего не смог найти!

Вот что я попробовал.


function Route(origin, destination){
    this.origin = origin; // LatLng
    this.destination = destination; //LatLng
    this.way_points = null;
};

Route.prototype.drawRoute = function(){
                 this.dser.route({'origin': this.origin,
                   'destination': this.destination,
                   'waypoints': this.way_points,
                   'travelMode': google.maps.DirectionsTravelMode.DRIVING},
                   function(res,sts) {
                          if(sts=='OK'){
                              var dren = new google.maps.DirectionsRenderer({ 'draggable':true }); 
                              dren.setMap(map); //global variable 'map'
                              dren.setDirections(res);
                          }   
                  });
};

Route.prototype.setGMap = function(map){
      this.dren.setMap(map);
};

Route.prototype.setWayPoints = function(){
  this.way_points =   //... what should I do?
};


/* --- main part --- */

r0 = new Route(new google.maps.LatLng( 30, 31 ), new google.maps.LatLng( 40, 41 ));
r0.drawRoute();

// User drags and drops the route on the browser

r0.setWayPoints(); // newly added waypoints should be stored in r0.way_points

r1 = new Route(new google.maps.LatLng( 50, 51 ), new google.maps.LatLng( 60, 61));
r1.drawRoute();

// User drags and drops the route on the browser

r1.setWayPoints(); // newly added waypoints should be stored in r1.way_points

Может кто-нибудь сказать мне, как реализовать Route.prototype.setWayPoints, чтобы путевые точки в маршруте на текущей карте Google можно было сохранить в объекте Route?

1 ответ

Решение

Я немного изменил подход и добавил getPoints-метод к Трассе-объекту.

Этот метод возвращает массив, который состоит из источника, путевых точек и пункта назначения, так что вы можете легко передать его куда-нибудь. (каждый элемент массива будет массивом [lat, lng])

http://jsfiddle.net/doktormolle/fjUqK/

Другие вопросы по тегам