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.

Geokodowanie adresów

Ten artykuł dotyczy najnowszej wersji API

« powrót do listy poradników

Praktycznym udogodnieniem dla użytkowników API jest możliwość prostego geokodowania adresów. Geokodowanie polega na zamianie adresu z postaci czytelnej dla człowieka (np. Szczecin, Niepodłegości 20) na dane, dzięki którym komputer może wyświetlić go na mapie np. (53.42971083966362, 14.544181823730469).

W praktyce, geokodowanie polega na wysłaniu specjalnie przygotowanego zapytania do serwera Google, który je przetworzy i zwróci wynik, o ile daną lokalizację można zdekodować. W USA i krajach Europy Zachodniej geokodowanie jest szczegółowe do tego stopnia, że można precyzyjnie geokodować ulice i numer budynku. W Polsce dokładność geokodera w dużych miastach również pozwala na precyzyjne ustalenie położenia z dokładnością do numeru domu.

Wykonanie zapytania

Do obsługi zapytań należy stworzyć nowy obiekt klasy Geocoder():

var geokoder = new google.maps.Geocoder();

Obiekt geokoder posiada metodę geocode(), której użyjemy do przetworzenia adresu na współrzędne. Musimy w tym celu podać dwa argumenty - pierwszy to literał obiektu, zawierającego parametry poszukiwanego adresu. Drugi to funkcja, która zostanie wykonana po wykonaniu operacji, która zostanie wywołana z dwoma argumentami - tablicą wyników oraz statusem zapytania.

geokoder.geocode({address: 'Szczecin, Krzywoustego 23'}, obslugaGeokodowania);

function obslugaGeokodowania(wyniki, status)
{
	if(status == google.maps.GeocoderStatus.OK)
	{
		// tutaj instrukcje, jeśli geokodowanie się powiodło
	}
	else
	{
		// tutaj instrukcje, jeśli geokodowanie się nie powiodło
	}
}

W linijce 7 należy wstawić kod, którego budowa nie powinna być trudnością po zaznajomieniu się z wcześniejszymi lekcjami. Może on przykładowo wyglądać tak:

var rozmiar 			= new google.maps.Size(32,32);
var rozmiar_cien 		= new google.maps.Size(59,32);
var punkt_startowy		= new google.maps.Point(0,0);
var punkt_zaczepienia	= new google.maps.Point(16,16);

var ikona	= new google.maps.MarkerImage("https://maps.google.com/mapfiles/kml/pal3/icon52.png", rozmiar, punkt_startowy, punkt_zaczepienia);
var cien 	= new google.maps.MarkerImage("https://maps.google.com/mapfiles/kml/pal3/icon52s.png", rozmiar_cien, punkt_startowy, punkt_zaczepienia);

mapa.setCenter(wyniki[0].geometry.location);
var marker = new google.maps.Marker(
	{
		map: 		mapa, 
		position: 	wyniki[0].geometry.location,
		icon: 		ikona,
		shadow: 	cien
	}
);
dymek.open(mapa, marker);
dymek.setContent('<strong>Poszukiwany adres</strong><br />Szczecin, Krzywoustego 23');
Zobacz także:

Pełny kod dostępny w przykładzie 1: