2011-01-27 18 views
27

Szukam zmienić ikony znaczników podczas korzystania z DirectionsRender w mapie google. Zaczynałem od here jak zmienić oba znaczniki na tę samą ikonę, ale szukam niestandardowych ikon zarówno na punkcie początkowym, jak i końcowym. Jakieś pomysły?Zmiana poszczególnych znaczników w mapach google kierunkach api V3

Edytuj: Szukam sposobu przypisania oddzielnych ikon do znaczników początkowego i końcowego. Wiem, jak to zmienić dla obu, ale posiadanie różnych ikon znaczników okazuje się trudne.

Odpowiedz

61

dla tych tha t muszą przykład jak ja, tutaj jest jeden podstawowy:

// Map and directions objects 
var map = new google.maps.Map(element, options); 
var service = new google.maps.DirectionsService(); 
var directions = new google.maps.DirectionsRenderer({suppressMarkers: true}); 

// Start/Finish icons 
var icons = { 
    start: new google.maps.MarkerImage(
    // URL 
    'start.png', 
    // (width,height) 
    new google.maps.Size(44, 32), 
    // The origin point (x,y) 
    new google.maps.Point(0, 0), 
    // The anchor point (x,y) 
    new google.maps.Point(22, 32) 
), 
    end: new google.maps.MarkerImage(
    // URL 
    'end.png', 
    // (width,height) 
    new google.maps.Size(44, 32), 
    // The origin point (x,y) 
    new google.maps.Point(0, 0), 
    // The anchor point (x,y) 
    new google.maps.Point(22, 32) 
) 
}; 

service.route({ origin: origin, destination: destination }, function(response, status) { 
if (status == google.maps.DirectionsStatus.OK) { 
    display.setDirections(response); 
    var leg = response.routes[ 0 ].legs[ 0 ]; 
    makeMarker(leg.start_location, icons.start, "title"); 
    makeMarker(leg.end_location, icons.end, 'title'); 
} 
}); 
function makeMarker(position, icon, title) { 
new google.maps.Marker({ 
    position: position, 
    map: map, 
    icon: icon, 
    title: title 
}); 
} 

Odpowiedź z żądania trasy powraca nogę (y) w zależności od liczby przystanków na trasie. Robię tylko trasę od A do B, więc weź pierwszą nogę i zdobądź pozycję, gdzie znaczniki muszą się udać, i utwórz znaczniki dla tych miejsc.

+9

A co ze zmianą znaczników w samych kierunkach? – Jason

+0

Tak, miłe pytanie! – keatch

+0

Dodałem funkcję, aby wyczyścić wszystkie znaczniki przed obliczeniem kierunków po raz drugi. Zobacz też https://developers.google.com/maps/documentation/javascript/examples/marker-remove – lmeurs

10

Czy jak mówią na tej stronie, którą powiązany:

  • Ustaw opcję suppressMarkers true, aby zapobiec domyślne początkowych i końcowych znaczników wyświetlanie
  • Tworzenie images dla dwóch nowych markerów
  • Tworzenie markers ze stanowiska ustawiony na pozycji początkowej i końcowej, a ikona ustawione na te, które Ci stworzony
+0

Ale jak przypisać je do obiektu Renderer? Zajmuje tylko jeden obiekt MarkerOptions, nie dwa. –

+3

nie przypisujesz ich. po prostu zdobądź dla nich współrzędne i utwórz dwa nowe znaczniki. – aniri

Powiązane problemy