Projekt Geoportal2 udostępnia wiele możliwości. Jedne widać na pierwszy rzut oka, inne niekoniecznie. W ramach zakończenia projektu na konferencji publicznie i online poprzez sieć Internet pokazano ogólniedostępną usługę geokodowania adresów (przypisania współrzędnych do adresu), której dzisiaj się przyjrzę.
Na stronie http://mapy.geoportal.gov.pl/openLSgp/ znajduje się formularz służący do geokodowania bazy adresów za pomocą usługi Open Location Service. Specyfikacja tej usługi znajduje się tutaj.
Bardziej od tej specyfikacji przydadzą się nam pliki xsd, których usługa używa, żeby przyjrzeć się w jaki sposób zbudować zapytanie, które pozwoli na zgeokodowanie adresów.
W tym celu na dole strony ze specyfikacją OpenLS klikamy w link z oficjalnymi schematami.
http://schemas.opengis.net/ols/
Pobieramy plik zip ze spakowanymi schematami – http://schemas.opengis.net/ols/ols-1_2_2.zip
Rozpakowujemy go i otwieramy plik olsAll.xsd narzędziem XSD Diagram – którego użycie opisałem w tym poście.
Rozwijamy gałąź Request (oznacza ona możliwe zapytania, których można w usłudze użyć), następnie rozwijamy gałąź GeocodeRequest
Stwórzmy XML z zapytaniem bazującym na dowolnym ciągu znaków (freeformAddress) np. o ul Wspólną 2 w Warszawie (siedziba GUGiK), pamiętając że musimy w nagłówku umieścić przestrzenie nazw do których się będzie zapytanie odwoływać. XML z zapytaniem będzie wyglądał nastepująco (zapytanie):
Efektem będzie strona prezentująca odpowiedź usługi
Jak widać usługa zwróciła xml ze współrzędnymi i opisem obiektu.
Dodam, że maksymalna ilość elementów które są wybierane to 500, a inne requesty niż Geocode nie działają. Jeśli nie chcecie się bawić w geokodowanie za pomocą xml, na stronie kontaktu geoportalu znajduje się zakładka geokodująca adresy na mapie (Narzędzia > Szukaj).
Jeśli interesują Was usługi geolokalizacji adresów zobaczcie koniecznie też ten wpis. Jeśli zaś chcecie poznać wskazówki jak przygotować adresy żeby poprawnie się zgeokodowały i zobaczyć klienta openls w akcji wejdźcie tutaj.