Definicja:
GIS to Geographical Information Systems lub bardziej po polsku Systemy Informacji Geograficznej, bądź Systemy Informacji Przestrzennej. Nasza ulubiona definicja to: GIS jest to zbiór wiedzy, ludzi, sprzętu i oprogramowania do pozyskiwania, przechowywania, przesyłania, analizowania i wizualizacji danych przestrzennych. Przez informację przestrzenną rozumiemy każdą informację, którą możemy przypisać do konkretnego miejsca.
Rozebranie definicji na części pierwsze.
Początkujący w tematyce GIS oraz wszyscy, którzy zetknęli się na studiach, bądź też w pracy zawodowej z systemami CAD, mają problem z odróżnieniem obydwu systemów. Zacznijmy od definicji:
Zagadnieniem koniecznym do skutecznej pracy w GIS jest poznanie sposobów radzenia sobie z układami współrzędnych prostokątnych płaskich oraz geograficznych. Wbrew pozorom, jednym z większych problemów z tym związanych jest nazewnictwo układów w różnych typach oprogramowania. Kody EPSG powstały w celu standaryzacji nazewnictwa i parametrów układów współrzędnych.
Z metadanymi w Polsce jest bardzo duży problem… Wszyscy o nich mówią w kontekście INSPIRE, co jakiś czas robi się zamieszanie, ponieważ kolejne zbiory danych muszą być metadanymi opatrzone, ale mało kto mówi o ich praktycznym wykorzystaniu. Głównym problemem jest to, że inne instytucje metadane (i same dane) wytwarzają (i nie potrzebują z nich korzystać), a inne wykorzystują (i nie biorą udziału w ich tworzeniu). Ten brak kontaktu powoduje brak zrozumienia idei.
Google Maps API jest jednym z najpopularniejszych rozwiązań, umożliwiających wyposażenie aplikacji webowej w mapy. Jest bogate w funkcje i dane oraz cechuje się wysoką dostępnością i stabilnością działania. Nie oznacza to jednak, że jest w każdym wypadku rozwiązaniem optymalnym, a w niektórych wypadkach jego użycie będzie wręcz niemożliwe. W tym artykule postaram się przedstawić powody, dla których warto rozpatrzyć użycie alternatyw dla Google Maps API oraz pokrótce je scharakteryzować.
Google Maps API, pomimo swoich zalet, posiada pewne ograniczenia. Szczególnie dotkliwe są one w przypadku użycia usługi bezpłatnej. W takim wypadku wykluczone są m.in.:
Z kolei usługa płatna umożliwia takie działania, ale jest sprzedawana z indywidualną wyceną, zaczynającą się od 10 000 $ rocznie. Dla wielu aplikacji może to oznaczać spadek rentowności poniżej akceptowalnego poziomu. Dodatkowo, nie wszystkie ograniczenia są zniesione – nadal nie można np. przechowywać wyników geokodowania w osobnej bazie danych i wyświetlać na mapach innych niż Google.
Pakiet Google Maps API składa się z dwóch podstawowych komponetów:
W większości zastosowań alternatywnych komponenty te są niezależne od siebie i można je wybrać spośród różnych dostawców.
Ten element może być trudny do wymiany w przypadku rozbudowanej aplikacji, gdyż pociąga za sobą przepisanie kodu. Ponieważ jednak samo Google od czasu do czasu publikuje nową wersję API, wymagającą przynajmniej częściowego przepisania własnego kodu, należy być zawsze gotowym na taką ewentualność i bez zmiany biblioteki. Ponadto można tą okazję wykorzystać do modernizacji i naprawienia błędów, lub wręcz przekazania klientom zupełnie nowej wersji aplikacji.
Istnieje kilka bibliotek Open Source mogących wyświetlać mapy w środowisku przeglądarki internetowej, z czego dwie najbardziej godne polecenia to OpenLayers i Leaflet.
Jest bardzo rozbudowanym, dojrzałym (pierwsze wydanie w 2006) projektem. Rozwój był zainicjowany przez firmę MetaCarta, obecnie jest niezależnym projektem wspieranym przez fundację OSGeo. Umożliwia współpracę z różnymi źródłami danych przestrzennych (m.in. usługi sieciowe TMS, WMTS, WMS, WFS oraz pliki KML, GeoJSON i GPX) oraz szeroki zakres interaktywności (rysowanie i pomiary, edycja danych, zaznaczanie obiektów, wyświetlanie informacji o obiekcie).
Wadą OpenLayers jest duży rozmiar (770 kB) oraz duża ilość starego kodu, związana z długą historią projektu. Obecnie trwają prace nad wersją 3, która ma zachować zakres funkcjonalności przy modernizacji i ograniczeniu rozmiaru kodu.
Najważniejszy konkurent dla OpenLayers. Wykorzystuje standardy HTML5 i CSS3 przy zachowaniu zgodności z Internet Explorer 8. Podstawowa biblioteka zajmuje 125 kB bez kompresji. Bardziej skomplikowane aplikacje – np. z możliwością rysowania, pomiarów, z wykorzystaniem plików KML – nie obędą się jednak bez użycia wtyczek, których powstało już wiele.
W odróżnieniu od OpenLayers wymaga od programisty znacznie mniejszej znajomości terminologii i teorii GIS (szczególnie zagadnień związanych z układami współrzędnych), oraz mniejszej ilości kodu dla osiągnięcia podstawowej funkcjonalności mapy. Przy bardziej złożonych aplikacjach może być jednak zbyt ograniczona.
Biblioteki OpenLayers i Leaflet, w odróżnieniu od Google Maps API JavaScript, nie są w żaden sposób powiązane z dostawcami map. Możemy wybrać dowolnego dostawcę, który udostępnia swoje usługi w standardowej formie. Najczęściej jednak używa się ich z mapami i usługami powstałymi na bazie danych projektu OpenStreetMap, który jest “Wikipedią wśród map” (więcej informacji tutaj) i umożliwia nieodpłatne korzystanie z źródłowych danych geograficznych.
Ten element jest najprostszy do zastąpienia. Spośród map bazujących na danych OSM, możemy wybrać oficjalną mapę projektu widoczną na stronie osm.org (OSM Standard, nazywaną też OSM Mapnik) – obie zaproponowane biblioteki posiadają gotowe funkcje do jej dodania. Oprócz tego można wykorzystać alternatywne wizualizacje (np. MapQuest, Hike&Bike) lub wreszcie – utworzyć własną, choć w tym wypadku niezbędny będzie serwer do jej utrzymania.
W odróżnieniu od mapy drogowej, pozyskanie danych siłami społeczności jest przy obecnym stanie techniki mocno utrudnione. Z tego powodu brak projektu analogicznego do OSM, umożliwiającego dodanie do własnego projektu mapy satelitarnej praktycznie bez ograniczeń licencyjnych.
Komercyjna konkurencja dla Google Maps w zakresie map satelitarnych, obejmujących zasięgiem Polskę, jest dość skromna. Możliwe jest skorzystanie z Bing Maps API, które do 125 000 zapytań rocznie dla aplikacji publicznie dostępnych. Aplikacje wymagające logowania, przeznaczone do użycia za firewallem wymagają odpowiedniej licencji biznesowej.
Drugą alternatywą jest MapBox Satellite. Ta usługa jest płatna w każdym przypadku, a wysokość opłaty zależy nie od rodzaju aplikacji, ale od wielkości ruchu i waha się od 5 do 500 $ miesięcznie.
W przypadku aplikacji działających na terenie jednego państwa, czasem możliwe jest skorzystanie – płatne lub bezpłatne – z map lotniczych oferowanych przez państwowe agencje, w formie usługi sieciowej WMS/WMTS. Niestety, polski geoportal.gov.pl na chwilę obecną nie udostępnia takiej usługi do wykorzystania we własnych aplikacjach.
Do wyszukiwania miejscowości i nazw geograficznych można wykorzystać usługę GeoNames. Wyszukiwanie ulic i adresów znajdujących się w zasobie OpenStreetMap możliwe jest dzięki usłudze Nominatim, choć działa ona w nieco staroświecki sposób – nie oferuje bowiem sugestii wyników na podstawie wpisanego fragmentu tekstu.
Dla polskich punktów adresowych, znajdujących się w gminach posługujących się Internetowym Menedżerem Punktów Adresowych (IMPA) można skorzystać z usługi lokalizacji adresów opisanej na stronie producenta aplikacji.
Istnieje kilka usług, umożliwiających wykreślenie najkrótszej/najszybszej trasy przejazdu pomiędzy zadanymi punktami, bazując na danych OSM. Jedną z nich, możliwą do integracji we własnych aplikacjach jest YOURS oparty o silnik Gosmore. Wyniki są zwracane w formacie GeoJSON lub KML, można również określić różne profile (najszybciej, najkrócej oraz środek transportu – samochód osobowy, ciężarowy, motorower, rower, pieszy). Drugą, charakteryzującą się większą wydajnością i aktualnością danych jest OSRM, wykorzystujący algorytmy nowej generacji. W tym przypadku mamy jednak do dyspozycji wyłącznie jeden profil trasy (samochód – naszybciej).
Za wyjątkiem zdjęć satelitarnych, uniezależnienie się od Google Maps API nie powinno nastręczać poważniejszych trudności. Odseparowanie od siebie kluczowych komponentów aplikacji mapowej, choć wymagające włożenia pewnego wysiłku, znacznie zwiększa jej elastyczność i ułatwia korzystanie z różnych źródeł danych. Przy odpowiednim przygotowaniu, możliwe jest nawet stworzenie systemu działającego bez stałego dostępu do sieci Internet.
Metadane to zbiór informacji szczegółowo opisujących dane, zbiory danych czy też usług, zapisany przy wykorzystaniu składni języka XML (eXtensible Markup Language – standard opracowany przez organizację W3C).
Przeczytaj także artykuł: “Po co są metadane w GIS“
Dzięki metadanym można dowiedzieć się jaka była data pozyskania danych i jak wygląda ich aktualność, kto je utworzył, na jakich zasadach są udostępniane, jakiego obszaru dotyczą, jaka jest ich szczegółowość, według jakiego standardu zostały opracowane, w jakim są układzie współrzędnych, w jakim formacie są dostępne czy też pod jakim adresem uruchomiona jest usługa. A także wiele innych informacji przydatnych podczas wyszukiwania przez użytkownika interesujących go materiałów geodezyjnych, kartograficznych, związanych z planowaniem przestrzennym czy też obejmujących tematykę środowiska przyrodniczego, ale nie tylko. Metadane są jednym z kluczowych elementów infrastruktury informacji przestrzennej.
Szczegółowe informacje dotyczące zapisów Dyrektywy INSPIRE oraz Ustawy o infrastrukturze informacji przestrzennej w kontekście metadanych geoinformacyjnych dostępne są m.in. w publikacjach:
Przedstawione są tam normy ISO odnoszące się do metadanych (19115 Metadane, 19139 Metadane – schemat implementacji XML) jak również opisane techniczne aspekty tworzenia metadanych.
Proces tworzenia metadanych z technicznego punktu widzenia nie jest specjalnie skomplikowany. Przygotowane edytory wspomagają operatora wskazując obligatoryjne pola wymagane w procesie walidacji pliku metadanych pod względem zgodności z wytycznymi. Dużo trudniejsze natomiast jest zebranie możliwie najdokładniejszych informacji o zasobie, który ma zostać opisany metadanymi.
W roku 2010 Główny Geodeta Kraju, aby wspomóc prace nad utworzeniem metadanych dla działek ewidencyjnych opublikował dokument “Wytyczne do przygotowania metadanych w zakresie działek ewidencyjnych” szczegółowo opisujący zakres informacji jaki powinien się znaleźć w tych metadanych. A wraz z nim udostępnił służbie geodezyjnej i kartograficznej specjalnie przygotowany internetowy edytor metadanych by wspomagać tworzenie ich dla zasobu działek ewidencyjnych. To właśnie służba geodezyjna i kartograficzna jako jedna z pierwszych w kraju musiała się zmierzyć z problemem dokładnego opisania swoich danych.
Za tworzenie i aktualizację metadanych w Polsce odpowiedzialnie są następujące Organy:
Załącznik I dyrektywy INSPIRE
Załącznik II dyrektywy INSPIRE
Załącznik III dyrektywy INSPIRE
Odbiorcami dla których tworzy się metadane są właściwe wszyscy, którzy potrzebują informacji o dostępnych danych przestrzennych dla konkretnego obszaru.
Przykład – przed rozpoczęciem realizacji każdego projektu (również tych geoinformacyjnych) po etapie precyzowania zamierzeń dotyczących produktu lub produktów końcowych projektu, następuje etap określania niezbędnych zasobów – finansowych, ludzkich, sprzętowych, wiedzy, technologii, danych bez których powodzenie realizacji projektu może zostać zaburzone lub całkowicie wykluczone. Właśnie na tym etapie przychodzą z pomocą serwisy katalogowe metadanych (CS-W Catalogue Service for Web). Dzięki którym jest możliwość zgromadzenia informacji na temat dostępności niezbędnych danych przestrzennych dla obszaru objętego projektem. Serwisy katalogowe to rodzaj usług sieciowych umożliwiających publikowanie i przeszukiwanie zbiorów metadanych dla danych i usług geoinformacyjnych.
Metadane są udostępnione w rozproszonej strukturze serwerów katalogowych. Usługi katalogowe dostępne są na różnych poziomach infrastruktury informacji przestrzennej. Jest to uzależnione od tego czy dany dysponent danych samodzielnie uruchomi i będzie utrzymywać własną usługę katalogową, w której udostępni swoje metadane czy też prześle je do innego podmiotu administrującego serwisem katalogowym np. na szczeblu krajowym. W zależności od preferencji właściciela katalogu metadanych może on być dostępny jako jeden z elementów geoportalu lub też jak zupełnie niezależna wyszukiwarka. Przykładem pierwszego podejścia jest geoportal Systemu Informacji Przestrzennej Powiatu Wrocławskiego wroSIP, gdzie usługa katalogowa jest wkomponowana jako jeden z widgetów geoportalu.
W portalu Wielkopolskiej Infrastruktury Informacji Przestrzennej katalog metadanych występuje w postaci niezależnej wyszukiwarki.
Dzięki zachowaniu standardów podczas konfigurowania usług CS-W i uruchomienia opcji tzw. harvestingu można przeszukiwać rozproszone katalogi metadanych.
Głównym punktem dostępowym do polskich metadanych i jednocześnie pierwszym miejscem, gdzie warto poszukać informacji o dostępnych zbiorach danych jest krajowy geoportal.
Na chwilę obecną dostęp do katalogu jest realizowany w dwojaki sposób ze strony głównej albo w geoportalu2 jako jeden z widgetów.
Docelowo metadane zbiorów danych i usług wszystkich krajów europejskich powinny być dostępne z poziomu europejskiego katalogu metadanych INSPIRE. Dzięki takiemu rozwiązaniu nie ruszając się z zza biurka będzie można sprawdzić dostępność danych dla różnych biznesowych projektów realizowanych przy wykorzystaniu danych przestrzennych o charakterze krajowym jak i międzynarodowym.
Dane, z którymi przychodzi nam pracować przeważnie występują w znanych formatach, odpowiednich do oprogramowania, jednak nie zawsze. Czasem trzeba się naszukać zanim znajdzie się informację o pochodzeniu danych, z którymi trzeba pracować. Mamy nadzieję, iż poniższa lista pomoże.
Jest to usługa przeglądania danych przestrzennych przez sieć Internet.
a teraz po ludzku…:)
Zbiory danych przestrzennych np. ortofotomapy, mają tę wadę, że zajmują mnóstwo pamięci (ważą tysiące gigabajtów). Przechowywane są na “centralnych serwerach”. Żeby wyświetlić ortofotomapę na swoim monitorze, trzeba ją fizycznie przesłać z serwera do komputera. Gdyby przesyłać je w oryginalnej formie, zajęłoby to wieki, przeciążyło serwery, łącza i nie miałoby większego sensu.
I w tym momencie używamy WMS. (Poniższy rysunek czytamy od prawej do lewej i z powrotem)