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.

Wyświetlanie adresu klikniętego punktu

Ten artykuł dotyczy API w wersji 2

« powrót do listy poradników

W poradniku Geokodowanie adresów pokazałem, jak używać geokodowania, tj. komputerowego automatycznego procesu zamiany adresu (np. Szczecin, Wojska Polskiego 54) na współrzędne geograficzne. W tym poradniku stworzymy aplikację, która będzie działać zupełnie na odwrót - ze współrzędnych geograficznych tworzyć będzie postać zwykłą.

W tym momencie wydawać by się mogło, że taka funkcjonalność jest zupełnie zbędna i nie ma praktycznego zastosowania. Jest jednak zupełnie na odwrót. Przykładem aplikacji, korzystającej z takiej funkcji będzie mapa, w której po kliknięciu na dowolny punkt zostanie wyświetlony adres klikniętego miejsca.

GClientGeocoder

Użyjemy tej samej klasy co w wymienionym wyżej poradniku - wykorzystamy do tego fakt, że metoda getLocations() implementowana jest polimorficznie - może przyjmować argumenty zarówno w postaci stringa z adresem jak również i w postaci punktu klasy GLatLng. My wykorzystamy drugą postać.

geokoder.getLocations(punkt,function(odpowiedz)
{
	if(!odpowiedz || odpowiedz.Status.code != 200)
	{
		alert('Nie udało się ustalić adresu!');
	}
	else
	{
		var adres		= odpowiedz.Placemark[0].address;
		var wspolrzedne	= new GLatLng(odpowiedz.Placemark[0].Point.coordinates[1],odpowiedz.Placemark[0].Point.coordinates[0]);
		
		var tekst 		= '<h3 class="dymek">Szczegóły klikniętego punktu</h3>';
		tekst			+= '<p class="dymek">'+wspolrzedne+'</p>';
		tekst			+= '<p class="dymek"><strong>adres</strong>: '+adres+'</p>'							
		mapa.openInfoWindowHtml(wspolrzedne,tekst);
	}
});

Zasadniczo interpretacja jest identyczna jak w rozdziale STRUKTURA poradnika Szczegóły wielu wyników geokodowania. Jedyną różnicą jest przekazywanie jako pierwszego argumentu punktu GLatLng. Warto zwrócić uwagę, że konieczne jest sprawdzenie, czy została zwrócona jakakolwiek odpowiedź, oraz czy nie zwrócono błędu (linijka 3). Aby dokonać geokodowania po kliknięciu na mapę, należy napisać taki kod:

GEvent.addListener(mapa,'click',function(obiekt,punkt)
{
	if(!obiekt && punkt)
	{
		/* tutaj kod z powyższego listingu */
	}
});

W linijce 3 sprawdzamy, czy nie klinięto na obiekt, oraz czy otrzymaliśmy zwrócony punkt. Jeśli oba warunki są spełnione, dokonywany jest proces geokodowania.

Sprawdź działanie przykładu: przykład 1pokaż kod przykładu

Uwagi

Czasami punkt zaczepienia okna infoWindow jest nieco inny niż faktyczne miejsce, na które kliknęliśmy. Wynika to z faktu, że w czasie przetwarzania i procesu geokodowania tracimy odwołanie do klikniętego punktu na mapie. Z tego względu, współrzędne tego miejsca odczytujemy ze zwracanego JSONA (patrz linia 10 w pierwszym listingu). Mogą się nieznacznie różnić od klikniętego miejsca, ponieważ reprezentują najbliższe miejsce, do którego API udało się dopasować adres.

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)


Wyznaczanie punktów z trasy przejazdu

API v2

Sposób na wyciągnięcie współrzędnych z polilinii (trasy dojazdu GDirections)


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