Kartografia internetowa

Ćwiczenie 4 - Odwzorowania i zewnętrzne źródła informacji

Odwzorowania  Zadanie 7  Zewnętrzne źródła informacji  Zadanie 8 

Odwzorowania

Mapserver umożliwia wyświetlanie i łączenie warstw posiadających georeferencje w różnych odwzorowaniach. Jest to możliwe dzięki użyciu biblioteki PROJ 4. Kiedy w pliku map użyty zostanie obiekt PROJECTION i dana warstwa znajduje się w odwzorowaniu innym niż wyjściowe zostaje przesłana do wspomnianej biblioteki i dokonywana jest jej reprojekcja. Obiekt ten zawarty w obrębie MAP określa odwzorowanie wyjściowe, natomiast w poszczególnych warstwach wejściowe. Należy zwrócić uwagę, aby współrzędne podawane w EXTENT miały odpowiednie jednostki. Najłatwiejszym sposobem podania odwzorowania jest użycie kodów EPSG. Są to numeryczne identyfikatory którym odpowiadają konkretne projekcje. Ich pełny spis można uzyskać tutaj. Przykładowy obiekt identyfikujący odwzorowanie jako Geograficzne na elipsoidzie WGS 84 wygląda następująco:

  
PROJECTION
"init=epsg:4326"
END


ZADANIE 7. Wprowadź zmiany w pliku map w ten sposób aby wyjściowa mapa wyświetlana była w przeglądarce w odwzorowaniu UTM.
Potrzebne kody EPSG to: 4326 - odwzorowanie Geograficzne oraz 32633 - Uniwersalne Poprzeczne Merkatora (UTM) strefa N33. Konwersji współrzędnych można dokonać np. tutaj.

Zewnętrzne źródła informacji

Oprócz lokalnych źródeł informacji aplikacje zbudowane w oparciu o Mapserver mają możliwość korzystania ze zdalnych serwerów WMS (Web Map Service) jako tzw. klient WMS (możliwe jest również działanie jako serwer). Dane te można wprowadzić jako zwyczajną warstwę, korzystając z odpowiednich parametrów obiektu LAYER oraz dodatkowych obiektów METADATA i WEB. W LAYER oprócz standardowych NAME, STATUS i TYPE muszą znaleźć się:

CONNECTIONTYPE
Domyślnie typ połączenia ustawiony jest jako "LOCAL". Aby korzystać zdalny serwer należy użyć wartości "WMS"
CONNECTION
Niejako zastępuje parametr DATA. Jest to ścieżka dostępu umożliwiająca wysłanie żądania do serwera. Uwaga - musi zawierać się w pojedynczej linijce!

Następnym niezbędnym obiektem jest METADATA (w obrębie LAYER). Za jego pomocą do serwera WMS przekazywane są odpowiednie informacje na temat żadanych danych. Należy zwrócić uwagę, że składnia parametrów różni się od innych obiektów. Zarówno one jak i ich wartości powinny być pisane małymi literami w cudzysłowiu.

Obiekt METADATA
"wms_srs"
Odwzorowanie w formacie: "EPSG:XXXX"
"wms_server_version"
Wersja serwera, dla Mapserver obecnie jest to: "1.1.1"
"wms_name"
Nazwa żądanej warstwy z zasobów serwera
"wms_format"
Format pliku w jakim spodziewamy się otrzymać dane np. "image/jpeg"

Przykładowy obiekt METADATA pozwalający wstawić warstwe z mozaiką z Landsata w naturalnych kolorach uzyskaną z NASA JPL:

LAYER#początek warstwy wms
	NAME 			"wms"	
	CONNECTIONTYPE 		WMS
	CONNECTION		"http://wms.jpl.nasa.gov/wms.cgi?"
	STATUS 			OFF 
	TYPE 			RASTER
 	OFFSITE		 	0 0 0

   	METADATA
      		"wms_srs"  		"EPSG:4326"
      		"wms_name" 		"global_mosaic"
      		"wms_server_version" 	"1.1.1"
      		"wms_format" 		"image/jpeg"
   	END
  
   	PROJECTION
      		"init=epsg:4326"
   	END   
END#koniec warstwy wms

Jednak przed wyświetleniem w przegladarce uzyskane zdalnie obrazy muszą zostać przynajmniej czasowo zapisane w katalogu serwera. Wskazujemy ten katalog poprzez obiekt WEB (bezpośrednio pod MAP), który w naszym wypadku będzie wyglądał tak:

WEB
	IMAGEPATH	"/var/www/tmp/"
	IMAGEURL	"/tmp/"
END

W przypadku gdy katalog tmp nie istnieje, należy go stworzyć w folderze domowym wraz z odpowiednim linkiem symbolicznym w katalogu /var/www/.

W sieci można znaleźć wiele rodzajów danych dostępnych właśnie poprzez serwery WMS. Kilka z nich a także porady jak szukać kolejnych opisane są na stronie Matta Perry

ZADANIE 8. Do istniejącej aplikacji dodaj warstwę z dowolnego serwera WMS.