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 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 . 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: