2011-11-29 7 views
12

Pracuję nad problemem routingu pojazdów. Ostatnio spędziłem trochę czasu przechodząc przez Google Maps API, aby sprawdzić, czy mogę wydrukować wiele tras na tej samej mapie. ja tak: route1: punkty a, b, c, A trasy 2 punkt A, D, E, F, przy trasy 3 punkt A, G, H, i am każda trasa ma inną polilinię kolorów. Czy ktoś może mi w tym pomóc?Używanie Google Maps 3 API do pobierania wielu tras na mapie

Odpowiedz

23

Tak, to jest całkiem proste, gdy już się z tym uporamy.

Chcesz użyć obiektu directionRenderer.

Najważniejsze, że chcesz, aby wszystkie trasy były ustawione w tablicy, a następnie chcesz je przejrzeć za pomocą pętli. Tworzenie za każdym razem nowego obiektu directionRenderer i każdorazowe ustawianie go na mapie. Wewnątrz pętli chcesz również utworzyć nową zmienną polilinii, którą za każdym razem przekazujesz do directionRenderer za pomocą innego koloru. Używam kodu, który to zrobił, ale nie wiem, gdzie on jest w tej chwili.

Oto przykład osoby korzystającej z różnych polilinii kolorystycznych. :

http://www.geocodezip.com/violette_com_TestMap2c.html

Jeśli skupimy się na tych dwóch linii kodu poniżej widać jak kolor polilinia jest ustawiona, a także w jaki sposób jest on przekazywany do directionsRenderer.

directionsDisplayActual = new google.maps.DirectionsRenderer({suppressMarkers: true, polylineOptions: polylineOptionsActual}) 

var polylineOptionsActual = { 
     strokeColor: '#FF0000', 
     strokeOpacity: 1.0, 
     strokeWeight: 10 
     }; 

Następne wskazówki dotyczące tras. :

http://code.google.com/apis/maps/documentation/javascript/examples/directions-waypoints.html

Innym dobrym przykładem.

var request = { 
    origin: start, 
    destination: end, 
    waypoints: waypts, 
    optimizeWaypoints: true, 
    travelMode: google.maps.DirectionsTravelMode.DRIVING 
}; 
directionsService.route(request, function(response, status) { 

Jeśli skoncentrujesz się na powyższym kodzie w podanym przykładzie google, zobaczysz waypts var. Tutaj jest ustawiony twój znacznik międzyczasowy (jak mówisz punkt b). Zrobisz to wykonując waypts.push(.....). Punktem początkowym i docelowym będzie twój punkt a i punkt b.

Nie powinno być zbyt trudno zrzucić coś razem. Proponuję pobrać przykład google najbliższy twoim potrzebom i przejrzeć go do prostego projektu, a następnie go stamtąd zbudować.

+0

Dzięki za odpowiedź. Wygląda na to, że jest to wciąż jedna trasa, tylko z punktami pośrednimi. Czy wiesz, czy jest możliwe - na przykład, mieć jedną trasę z odległości spaceru i jedną trasę z odległości jazdy w tym samym czasie? –

+0

Nie rozumiem, dlaczego nie zrobiłbyś po prostu dwóch różnych tras. Jeden, który jest kierowany przez pieszy, a drugi kierowany, prowadził każdy z osobna i umieszczał je na mapie z różnymi poliliniami. –

+0

Zgadzam się z @User Smith, użyłem polilinii do skonstruowania mojej ostatecznej trasy. Przykład tutaj https://code.google.com/p/gmaps-samples-v3/source/browse/trunk/io-2010-bootcamp/v3-polyline.html?r=111 – Purusartha

Powiązane problemy