Konfigurace MapServeru¶
MapServer nedisponuje žádným grafickým uživatelským rozhraním. Až na výjimky [1] se konfiguruje pomocí jednoduchého textového souboru, který je velice dobře zdokumentován na webových stránkách projektu.
Jednotlivé konfigurační sekce jsou započaty klíčovým slovem a ukončeny slovem
END
. Je lhostejno, používáte-li velká či malá písmena nebo nepoužíváte-li
odsazení jednotlivých sekcí. Pro větší čitelnost se ale doporučuje používat
VELKÁ PÍSMENA
v jednotlivých sekcích a dodržovat odsazení.
Metadata mapového projektu¶
Celý příklad mapfile si můžete prohlédnout v souboru
.
Mapfile začíná slovem MAP
a je ukončen zmiňovaným END
. V úvodní sekci
jsou základní údaje o projektu:
MAP
NAME "VUGTK skoleni"
STATUS ON
SIZE 800 600
EXTENT -743600.880000 -1036637.030000 -738206.890000 -1033085.320000
SHAPEPATH "./"
IMAGECOLOR 255 255 255
END # Map File
Je důležité nakonfigurovat výchozí souřadnicový systém projektu, v našem případě je to S-JTSK (EPSG:5514).
PROJECTION
"init=epsg:5514"
END
Neméně důležitá jsou metadata pro služby OWS (OGC Web Service Common) a konfigurační cesty ke vznikajícím obrázkům:
WEB
IMAGEPATH "/var/www/tmp/"
IMAGEURL "/tmp/"
METADATA
"ows_title" "VUGTK Skoleni"
"ows_abstract" "VUGTK Skoleni Open Source GIS, GISmentors.eu"
#"wfs_onlineresource" "http://46.28.111.140/cgi-bin/mapserv?" ## Recommended
"wms_onlineresource" "http://46.28.111.140/services/vugtkwms?" ## Recommended
"ows_srs" "EPSG:4326 EPSG:5514 EPSG:32633 EPSG:3035 EPSG:3857"
"ows_enable_request" "*"
END
END
Rastrová vrstva¶
Následuje konfigurace vrstev. Jako příklad uvedeme nejprve rastrovou vrstvu z připraveného lokálně uloženého rastrového souboru.
LAYER
NAME "ortofoto_local"
METADATA
"wms_title" "Lokální ortofoto"
END
TYPE RASTER
STATUS ON
DATA "jpeg/ortofoto.jpg"
PROJECTION
"init=epsg:32633"
END
END
Všimněte si, že rastrový soubor je v jiném souřadnicovém systému, než celý projekt (UTM 33N EPSG:32633 vs. S-JTSK EPSG:5514).
OWS Proxy¶
MapServer může sloužit také jako proxy pro další služby OGC OWS a kombinovat tak data z různých zdrojů do jednoho obrázku. Toho lze využít, chceme-li rasterizovat externí datový zdroj např. WFS nebo potřebujeme-li přidat podporu pro souřadnicové systémy, které zdrojový server nepodporuje.
V příkladu níže zobrazíme vrstevnice z WMS serveru ČÚZK
LAYER
NAME "vrstevnice_wms"
METADATA
"wms_title" "Vrstevnice CUZK Zabaged"
"wms_srs" "EPSG:5514"
"wms_name" "GL_CA010"
"wms_server_version" "1.1.1"
"wms_format" "image/png"
"wms_style" ""
END
CONNECTION "http://geoportal.cuzk.cz/WMS_ZABAGED_PUB/WMService.aspx?"
CONNECTIONTYPE WMS
TYPE RASTER
STATUS ON
END
Vektorová vrstva¶
MapServer podporuje všechny myslitelné vektorové formáty (díky knihovně
GDAL). V našem příkladu se připojíme na dříve vytvořenou databázi PostGIS a
zobrazíme vrstvu stavebniobjekty
, kterou v mapfile nazveme budovy
. Všimněte si
sekce METADATA
, ve které nastavíme některé atributy budoucích webových
služeb (WMS, WFS).
LAYER
NAME "budovy"
METADATA
"ows_title" "Budovy"
"gml_featureid" "ogc_fid"
"gml_include_items" "all"
END
TYPE POLYGON
STATUS ON
CONNECTIONTYPE POSTGIS
CONNECTION "host=geo102.fsv.cvut.cz dbname=gismentors_vugtk user=gismentors password=vugtk14"
#CONNECTION "user=jachym password=jach dbname=gismentors_vugtk port=5433 host=localhost"
DATA "originalnihranice from stavebniobjekty"
DUMP TRUE
CLASS
NAME "Budovy"
STYLE
COLOR 255 155 0
OUTLINECOLOR 120 120 120
END
END
STATUS ON
END # Layer
Nastavení webové služby¶
Program mapserver(.exe)
rozpoznává parametr map
v URL, který odkazuje na
daný mapový soubor, např:
http://localhost/cgi-bin/mapserver.exe?map=c:\data\skoleni\vugtk.map
Lepší možnost je exportovat proměnnou prostředí MS_MAPFILE
, čehož docílíme
buď v nastavení webového server [2]
Alias /mywms /usr/lib/cgi-bin/mapserver
<Location /mywms>
SetHandler cgi-script
Options ExecCGI
SetEnv MS_MAPFILE /path/to/mymapfile.map
</Location>
nebo můžeme zkopírovat mapserv.exe
pod novým jménem a toto jméno použít:
SetEnvIf Request_URI "/cgi-bin/vugtkwms" MS_MAPFILE=/path/to/mymap.map
Testování konfigurace MapServeru¶
První možností je testovat konfiguraci pomocí programu shp2img
, který vezme
výchozí nastavení v námi vytvořeném konfiguračním mapovém souboru a vyrobí z něj
obrázek.
Testování mapového souboru v příkazové řádce
$ shp2img –help […] $ shp2img -m vugtk.map -o vugtk.png
Testování WMS¶
Do webového prohlížeče můžeme nyní zadat adresu s dotazem
GetCapabilities
pro získání metadat služby WMS.
Poznámka
Předpokládáme, že máme nakonfigurovanou adresu služby http://localhost/cgi-bin/vugtkwms, viz výše Nastavení webové služby.
http://localhost/cgi-bin/vugtkwms?service=wms&request=getcapabilities
Odpověď ze serveru by měla být:
<?xml version=‚1.0‘ encoding=“ISO-8859-1“ standalone=“no“ ?> <WMS_Capabilities version=“1.3.0“ xmlns=“http://www.opengis.net/wms“ …
<Layer>
- […]
- </Layer>
</Capability> </WMS_Capabilities>
Následovat může připojení služby WMS do programu QGIS, viz Zobrazení WMS a WFS vrstev v QGISu.
Poznámky
[1] | MapServer lze využít ve vlastích programech díky API, potom je konfigurace vyřešena přímo v programu a ne v externím konfiguračním souboru. |
[2] | Nastavení proměnných prostředí pro MapServer http://mapserver.org/ogc/wms_server.html |