www.gmapsapi.com

Kompleksowy kurs podstaw API, po którym mapowianie nie będzie miało przed Tobą żadnych tajemnic!

Setki przykładów, kursów i poradników z kodem gotowym do skopiowania i korzystania.

Największa strona o Google Maps API w Polsce, największe źródło informacji w języku polskim.

Wyznaczanie punktów z trasy przejazdu

Ten artykuł dotyczy API w wersji 2

« powrót do listy poradników

W poradniku Znajdowanie trasy i wskazówek dojazdu przedstawiono pewien sposób na dodanie wskazówek dojazdu do mapy, zarówno w postaci tekstowej jak i w postaci graficznej (polilinii na mapie).

Dla pewnych zastosowań, przydaje się czasem możliwość posiadania listy punktów - wierzchołków polilinii, a nie tylko jej obrazka na mapie lub listy kroków (skręć w lewo, trzymaj się prawej strony i tym podobne). Chcemy więc, by zamiast takich danych:

Wskazówki dojazdu w Google Maps API

posiadać takie:

  1. (53.428580,14.552830)
  2. (53.428030,14.555870)
  3. (53.427860,14.557060)
  4. (53.427560,14.558570)
  5. (53.427040,14.562000)
  6. (53.426810,14.563170)
  7. (53.426540,14.564000)
  8. (53.426100,14.564970)
  9. ... (i tak dalej - kilkaset punktów)

Otrzymanie takiej listy jest stosunkowo proste. W tym poradniku stworzona zostanie mapa, za pomocą której:

  1. API wczyta wskazówki dojazdu ze Szczecina do Poznania,
  2. otrzymane wyniki przetworzymy tak, by uzyskać listę wierzchołków polilinii,
  3. a przy tym nie będzie trzeba nigdzie rysować oryginalnej polilinii czy wskazówek dojazdu.

O konstruktorze GDirections

W przykładach z kursu Znajdowanie trasy i wskazówek dojazdu używano takiej postaci konstruktora:

dojazd = new GDirections(mapa, document.getElementById("wskazowki"));

Dzięki podaniu obu argumentów, API od razu po wczytaniu trasy rysowało ją na mapie mapa oraz wstawiało wskazówki dojazdu do diva wskazowki. Ponieważ nie chcemy, aby żadna z tych rzeczy miała miejsce w nowotworzonej aplikacji, oba argumenty ustawiamy na null:

dojazd = new GDirections(null,null);

Obiekt dojazd powinien być obiektem globalnym, ze względu na wygodę użycia.

Wyznaczenie trasy i punktów polilinii

Aby zadać zapytanie, używamy konstrukcji:

dojazd.load('from:SKĄD_ADRES to:DOKĄD_ADRES',{getPolyline: true});

Bardzo ważne jest dodanie ostatniego argumentu {getPolyline: true}. Dzięki niemu, API jest poinstruowane, że ma stworzyć polilinię, opisującą trasę przejazdu. Jeżeli przy tworzeniu obiektu oba argumenty ustawiliśmy na null, to domyślnie polilinia ta nie jest generowana.

Musimy również poinstruować API, co ma zrobić w momencie, gdy trasa zostanie wczytana. Oczywiście, chodzi o to, by wyciągnąć wówczas punkty z otrzymanej polilinii. Wszystko to robi się za pomocą zdarzenia load, w następującej postacji:

GEvent.addListener(dojazd,'load',function()
{
	if(!dojazd.getPolyline())
	{
		alert('Nie wczytano polilinii!');
		return;
	}
	else
	{
		// wyznaczamy polilinię z trasą przejazdu
		var linia = dojazd.getPolyline();
		var html = '

Oto współrzędne wierzchołków polilinii:

'; html += '<ol>'; for(var i=0; i<linia.getVertexCount(); i++) { // dla każdego punktu wyznaczamy współrzędne i je ładnie formatujemy var punkt = linia.getVertex(i); html+= '<li>('+punkt.lat().toFixed(6)+','+punkt.lng().toFixed(6)+')</li>'; } html += '</ol>'; document.getElementById('wskazowki').innerHTML = html; mapa.addOverlay(linia); // (opcjonalnie) nakładamy polilinię na mapę } });

Powyższy kod stworzy listę numerowaną współrzędnych i umieści ją w divie wskazowki. Kluczowym fragmentem kodu jest linia 11 - to właśnie tam wyciągana jest polilinia dojazdu, a następnie za pomocą standardowych metod punkty z niej.

Można również zaprogramować zdarzenie błędu geokodowania:

GEvent.addListener(dojazd,'error',function()
{
	alert('Wystąpił błąd przy wyznaczaniu trasy!');
});

Oba powyższe fragmenty kodów (dla porządku) powinny znaleźć się przed pierwszym wywołaniem zapytania (dojazd.load()). W razie wątpliwości sprawdź kod poniższego przykładu: przykład 1pokaż kod przykładu

Polecane artykuły

Dodaj stronę do ulubionego serwisu społecznościowego

Oto, co najczęściej czytają internauci, którzy przeczytali ten artykuł:

Geokodowanie adresów

API v2

Kurs podstaw cz. XI: Proste i szybkie geokodowanie adresów (zamiana adresu na współrzędne)


Znajdowanie trasy i wskazówek dojazdu

API v2

Prosty i elegancki sposób na znajdowanie i rysowanie trasy oraz wskazówek dojazdu pomiędzy punktami


Obsługa wielu wyników geokodowania

API v2

Bardziej zaawansowany przykład geokodowania, uwzględniający kilka pasujących rezultatów


Wyświetlanie adresu klikniętego punktu

API v2

Dzięki temu poradnikowi dowiesz się, jak wyświetlić dane adresowe klikniętego punktu na mapie