Oczywiście GDAL nie jest jedynym programem, który pozwala na ściągnięcie map w kafelkach z serwerów OpenStreetMap lub ARS Geoportalu - istnieje przecież szereg innych rozwiązań. Nie jest też pewnie najbardziej przyjaznym dla zwykłego użytkownika - większość z nich preferuje jednak standardowy interfejs okienkowy i klikanie niż własnoręczne wpisywanie komend do linii poleceń i tworzenie plików xml.
Przewaga GDAL tkwi w jego uniwersalności. Nie jest to jedynie zbiór programików, to przede wszystkim biblioteka programistyczna, dzięki której zestaw funkcji GDAL może być wykorzystany w innych aplikacjach. Takich programów, które opierają się w mniejszym lub większym stopniu na bibliotece, jest całkiem sporo: GRASS, Mapserver, QGIS, a nawet Google Earth i ArcGIS.
W przypadku integracji GDAL i Mapservera możliwe jest np. użycie serwera ARS Geoportalu jako źródła danych rastrowych, a następnie stworzenia własnego WMS. Po co jednak ktoś chciałby rezygnować z szybkiego dostępu do kafelków na rzecz powolnego WMS? Powodów może być wiele: nasz program może nie posiadać obsługi TMS, chcielibyśmy mieć mapy w innym odwzorowaniu itp.
Tyle tytułem wstępu. Teraz czas na praktyczne wykorzystanie :)
Potrzebne będą:
Nie będę opisywał procesu instalacji i konfiguracji jednego i drugiego oprogramowania - jest zbyt dużo możliwości i platform (FWTools, Osgeo4W dla Windows, pobieranie z paczek lub kompilacja w systemach Linux). W każdym razie na Windowsach powinno być łatwiej (dziwnym nie jest...), bo jak wspomniano FWTools ma już wersję 1.7. Natomiast w przypadku Linux konieczna będzie kompilacja ze źródeł - w repozytoriach leżą jakieś przestarzałe pakiety sprzed dwóch lat (tak, to jest właśnie jedna z wielu ZaletLinuksa™).
Zakładając, że GDAL i Mapserver są w najnowszej wersji i działają jak należy, można przystąpić do właściwego działania:
Potrzebny jest plik xml z konfiguracją serwera. Zasady są identyczne jak w notce o pobieraniu map z serwerów ARS Geoportalu. Należy pamiętać o dodaniu do pliku tagu <Cache>, dzięki czemu unikniemy za każdym razem ściągania danych od nowa, co przełoży się na wiekszą szybkość i mniejsze obciążenie serwerów.
Gotowe konfiguracje: Geoportal (BDO), UMP, OSM.
Tworzymy nowy plik map dla Mapservera i dodajemy warstwę rastrową, a jako źródło danych (DATA) podajemy lokalizację pliku xml.
Nie będę się wdawał w szczegóły dot. tego jak stworzyć plik map i co znaczą poszczególne opcje - tutaj jest przykładowy plik dla OSM. Kilka rzeczy na które warto zwrócić uwagę:
- PROJECTION to odwzorowanie danych źródłowych (czyli EPSG:900913 dla UMP i OSM, 2180 dla Geoportalu)
- wms_srs to odwzorowania w jakich mapy będzie udostępniał Mapserver
- PROCESSING "RESAMPLE=AVERAGE" - włączenie resamplingu (dostępny jest również BILINEAR), domyślnie używany jest NEAREST, który jest szybki, ale daje kiepską jakość
- MAXSCALE, MINSCALE - przedział widoczności danej warstwy (dla warstw UMP i OSM nie trzeba go podawać, ale w przypadku np. TBD z Geoportalu, które pojawia się dopiero od pewnego przybliżenia, a pierwszy poziom składa się z 1536x1024 kafelków, konieczne jest wpisanie MAXSCALE - w przeciwnym wypadku ogólny widok Polski w oddaleniu powodowałby próbę ściągnięcia wszystkich(!) plików z pierwszego poziomu)
- CONFIG "PROJ_LIB" to lokalizacja pliku z definicjami kodów EPSG odwzorowań - 900913 nie jest standardowym kodem, więc Mapserver może go nie rozpoznać - należy podać ścieżkę do pliku, w którym dodany jest ten kod (można też spróbować oficjalnego, choć nie tak znanego, EPSG:3857, który opisuje to samo odwzorowanie "sferycznego Merkatora" co 900913)
Taki url wystarczy dodać teraz np. do QGIS:
Ale, ale... ktoś mógłby zapytać czy skoro QGIS również oparty jest na GDALu, to czy nie można by w nim bezpośrednio podpiąć TMS, bez przechodzenia przez Mapserver?Owszem, można. Wystarczy z menu Warstwa wybrać Dodaj warstwę rastrową i wskazać odpowiedni plik xml. Wydaje się proste, tyle że potrzebny jest QGIS skompilowany w oparciu o GDAL 1.7, a najnowsza stabilna wersja QGIS wykorzystuje 1.6.1 (próba otworzenia takiego xml zakończy się wyskoczeniem błędu GDALWMS: No mini-driver registered for 'TMS'; zadziała natomiast xml dla WMS).
Zatem należy czekać na kolejną wersję oficjalną QGIS 1.5 (kilka miesięcy?) lub korzystać z Osgeo4W i rozwojowych buildów (tam pewnie pojawi się wcześniej), zaś niecierpliwym pozostaje samodzielna kompilacja...



1 komentarz:
Może da się coś zrobić z takim adresem:
http://www.jaworzno.pl/mapa/advMapsGetImgMaps.php?logo=off&p=plan_05&scale_bar=off&m_x=6590785&m_y=5563656&m_w=200&i_w=1100&i_h=800&cs=POL.2000.18&scale=1000&l=wladanie
Prześlij komentarz