Usługi geolokalizacji adresów według różnych producentów.

Ostatnio dość popularnym tematem stało się pozyskiwanie i geolokalizacja adresów. Postanowiłem sie temu tematowi przyjrzeć.

1. Usługa ULA – Geo-System sp. z o.o.
Wczoraj na geoforum zaprezentowano informację o usłudze lokalizacji adresów firmy Geo-System.
Szczegółową specyfikację usługi ULA Geo-Systemu można znaleźć tutaj.

Opisana na geoforum usługa, okazuje się być czymś więcej niż się wydaje. Poniżej prezentuję skrócone zapytania ze specyfikacji. Zachęcam jednak do samodzielnego przeczytania całości.

Tworzenie słownika na podstawie TERYT – odpowiedź to XML z wykazem miejscowości z danego obszaru:
http://punktyadresowe.pl/lokalizacja.php?miejscowosci=200201 – zmienna miejscowosci to kod teryt gminy bez ostatniej cyfry. Link do bazy TERYT: http://www.stat.gov.pl/broker/access/index.jspa

http://punktyadresowe.pl/lokalizacja.php?ulice=0922811 – zmienna ulice to znacznik simc z odpowiedzi na poprzednie pytanie.

Zapytanie o zakres miejscowości:
http://punktyadresowe.pl/lokalizacja.php?adres=Choroszcz (dokumentacja)
http://punktyadresowe.pl/lokalizacja.php?adres=pruszcz%20gda%C5%84ski (np. Pruszcz Gdański)

Zapytanie o listę zakresów miejscowości z gminnej bazy danych
http://halinow.punktyadresowe.pl/system/service.php?Request=getAreas
http://pruszczgdanski.punktyadresowe.pl/system/service.php?Request=getAreas (np. Pruszcz Gdański)
Pobranie ulic z danej miejscowości:
http://halinow.punktyadresowe.pl/system/service.php?request=getStreets&AreaID=0002766
http://pruszczgdanski.punktyadresowe.pl/system/service.php?request=getStreets&AreaID=0169124 (ulice z Cieplewa – pruszcz gdański)
gdzie AreaID to numer znacznika SIMC z odpowiedzi na poprzednie pytanie.

Pobranie atrybutów numeru adresowego w tym zakresu ulicy i miejscowości na której leży – na podstawie ID miejscowości, ID ulicy i podanego numeru adresowego. (uszkodzony link w dokumentacji)
http://halinow.punktyadresowe.pl/system/service.php?request=GetAddressParExt&AreaID=0002766&StreetID=53180&Number=19c
Nie potrafiłem odtworzyć zapytania w Pruszczu Gdańskim.

Zapytanie zwracające zapytanie w formacie tekstowym. Odwołujemy się do innego adresu niż standardowy – prawdopodobnie serwis testowy.
http://halinow.pktadr.pl/system/service.php?request=GetAddressLocation&AreaID=0002766&StreetName=Ko%C5%9Bciuszki&Number=21

Uwaga do wszystkich powyższych linków: format domyślny odpowiedzi to XML, format json można uzyskać poprzez dodanie do zapytania zmiennej &f=json na końcu.

Usługi są dość intuicyjne i odnoszą się do znanego rejestru referencyjnego jakim jest TERYT. Jeszcze raz zachęcam zainteresowanych do przeczytania całości dokumentacji na stronie Geo-Systemu.
Dziękuję firmie Geo-System i Autorom specyfikacji za dość szczegółowy opis usługi. Część powyższych linków pochodzi z dokumentacji lub jest zastosowaniem tej dokumentacji w praktyce na przykładzie istniejącego serwisu adresowego Pruszcza Gdańskiego.

2.GUGiK
Usługi wyszukiwania adresu znajdują się pod trzema adresami:
Usługa OPENLS – szczegółowo opisałem to tutaj.

Przykładowe zapytanie do usługi podobnej do usługi Geo-Systemu zwracającej json – wyszukiwanie max. 500 obiektów (ograniczenie usługi):

Wyszukiwanie ulic z miasta Gdańsk: http://mapy.geoportal.gov.pl/openLSgp/AddressesServlet?type=openls&infoTemplate=${GMINA}%20${MIEJSCOWOSC}%&}&text=gda%C5%84sk%20gda%C5%84sk

Format usługi jest następujący:
http://mapy.geoportal.gov.pl/openLSgp/AddressesServlet?type=openls&infoTemplate=${GMINA}%20${MIEJSCOWOSC}%20${NAZWA_ULICY}%20${NR_ADR}&text=[gmina]spacja[miejscowość]spacja[nazwa_ulicy]spacja[nr adresowy]

Niestety nie znalazem dokumentacji do tej usługi, jednak jest ona samoopisująca się i  zwraca odpowiedź w formacie json. Można poeksperymentować z odpowiedziami usługi na różne warianty zapytania.

Standardowa usługa WSDL – http://mapy.geoportal.gov.pl/wss/service/SLN/guest/

Wszystkie powyższe usługi zostały zaprezentowane na konferencji Geoportalu2 i poprzez sieć internetową z tej konferencji lub są ogólnie dostepne w sieci Internet.
Istnieją również inne usługi pozwalające na wyszukiwanie i pobieranie min.bazy adresów, jednak ze względu na to że nie zostały one zaprezentowane publicznie przez GUGiK/CODGiK nie zdecydowałem się na ich prezentację i opisanie tutaj.

3. Usługi geolokalizacji google i openstreetmap w QGIS 2.0.1 – wtyczka geocode.
Najprościej jest ich użyć włączając wtyczkę geocode w QGIS 2.0.1 – oferuje ona zarówno geokodowanie adresu jak i wyszukiwanie adresu na podstawie współrzędnych (reverse geocode). Obrazek poniżej.

wtyczka geocode w programie qgis

Wtyczka znajduje się w oficjalnym repozytorium wtyczek QGIS 2.0 Wybór operatora geolokalizacji i skali następuje poprzez wybranie w opcji w Settings.

Wybór dostawcy geokodowania w QGIS