Mapový server MapServer

Obsah

Úvod

MapServer je vývojové prostředí OpenSource pro tvorbu internetových aplikací s prostorovou vazbou vyvinutý na University of Minnesota. Mapovému serveru MapServer je věnována větší pozornost, protože je použit jako standardní mapový server pro T-MapServer 1.2 a běží na něm ukázkový projekt.

Mapový server MapServer pracuje jako CGI skript a generuje rastrové obrázky ve formátu GIF, JPEG nebo PNG na základě popisu mapy pomocí mapového projektu. Mapový projekt je tvořen jediným souborem, jehož obsah je rozebrán v kapitole Popis mapového projektu.

Adresářová struktura a datové formáty

V kořenovém adresáři mapového serveru MapServer pro uložení dat se nachází pět důležitých adresářů:

Popis mapového projektu

Mapový projekt definuje základní nastavení a chování jednotlivých vrstev T-MapServeru. Tento projekt se skládá z hierarchie objektů, které popisují, jak bude vykreslena mapa a co bude obsahovat. Samotný projekt je objekt Map, který obsahuje základní vlastnosti mapy a další objekty. Mezi ně patří jednotlivé objekty Mapové vrstvy, objekt Měřítko, Legenda mapy a další. Každá vrstva může prvky, které obsahuje, rozdělit do několika tříd a jinak je zobrazovat. Tyto třídy jsou popsány objektem Třídy. Vrstva ještě může obsahovat Objekt pro dotazování, který nastavuje vlastnosti pro získávání informací z dané vrstvy. Objekt Třída a jiné objekty zase mohou definovat Objekt pro textový popis, jehož vlastnosti obsahují informace, jak se mají zobrazovat textové popisky. Toto je jen stručný popis mapového projektu, mnohem více a konkrétní vlastnosti jednotlivých objektů se dovíte v dokumentu Mapový soubor (tento dokument je pouze v angličtině).

Základní informace pro editaci projektu

Možnosti zobrazení prvků v mapě

Typy liniových symbolů:
 

 
Typy bodových symbolů:
 

 
Typy symbolů pro plochy:
 

Ukázky z projektu s komentářem


#
# Základní nastavení mapy
#
NAME demo
SIZE 400 400
EXTENT -646391.125 -1047212.72672 -635076.046 -1036052.093
# vlastnosti SIZE a EXTENT jsou přepsány v aplikačním serveru
UNITS meters
# v jakých jednotkách je mapa
TRANSPARENT true
SHAPEPATH '../../data/demo' 
# cesta k datům

FONTSET '../../fonts/fonts.list'
LINESET '../../symbols/line.sym' 
MARKERSET '../../symbols/marker.sym'
SHADESET '../../symbols/shade.sym'
# cesty k fontům a symbolům

#
# Definice měřítka
#
SCALEBAR
  IMAGECOLOR 255 255 255
  LABEL
    COLOR 0 0 0
    BACKGROUNDCOLOR 255 255 255
    SIZE SMALL
  END  #LABEL
  SIZE 350 5
  COLOR 255 255 255
  BACKGROUNDCOLOR 150 0 0
  OUTLINECOLOR 0 0 0
  UNITS meters
  INTERVALS 10
  STYLE 0
  STATUS ON
  TRANSPARENT TRUE
END   #SCALEBAR

#
# Definice mapových vrstev
#
LAYER
  NAME ortofoto
  TYPE Raster
  STATUS ON
  DATA 'hk2r.tif'
END  # LAYER
# příklad vrstvy v rastrovém formatu

LAYER
  NAME plochy2
  TYPE Polygon
  GROUP plochy
  STATUS on
  DATA 'plochy_p'
    CLASSITEM Typ
      CLASS
        EXPRESSION '1'
        NAME 'ostatní plochy'
        COLOR 254 253 191
      END  # CLASS
      CLASS
        EXPRESSION '2'
        NAME 'soukromá plocha'
        COLOR 235 197 176
     END  # CLASS
     CLASS
        EXPRESSION '3'
        NAME 'veřejná zeleň'
        COLOR 195 255 195
     END  # CLASS
END  # LAYER
# příklad vrstvy ve vektorovém formatu (plochy)
# tato vrstva obsahuje 3 třídy prvků, které jsou
# rozděleny podle hodnoty atributu Typ a zobrazeny
# v mapě různou barvou

LAYER
  NAME hraniceploch
  GROUP plochy
  TYPE Line
  STATUS on
  DATA 'hrploc_l'
     CLASS
        NAME 'Hranice ploch'
        COLOR 173 173 173
     END  # CLASS
END  # LAYER
# příklad vrstvy ve vektorovém formatu (linie)

LAYER
  NAME budovy
  TYPE Polygon
  STATUS ON
  DATA 'budovy_p'
  MAXSCALE 40000
  TOLERANCE 0
  CLASS
    Name 'Budovy'
    COLOR 254 154 154
    OUTLINECOLOR 255 124 124
  END  # CLASS
  TOLERANCE 0
  TOLERANCEUNITS meters
  QUERY
    TEMPLATE '../../data/demo/budovy_p.html'
  END # Query
END  # LAYER
# příklad vrstvy s objektem pro dotazování,
# vlastnost TOLERANCE nastavená na 0 znamená, že při
# dotazu na konkrétní souřadnice x a y bude nalezen
# prvek, který tento bod obsahuje,
# výsledek bude vrácen podle obsahu šablony (TEMPLATE)

LAYER
  NAME cor_anno
  TYPE Annotation
  STATUS on
  DATA 'budovy_ul_b'
  Labelitem 'Cor'
  LABELMAXSCALE 3000
  symbolscale 1200    
  LABELCACHE OFF
  CLASS
    EXPRESSION ([COR] > 0) 
    SYMBOL 5
    Name 'Čísla orientační'
    COLOR 165 165 165
    OUTLINECOLOR 0 0 0
    LABEL
      antialias
      COLOR 255 0 0
      FONT 'arial-italic'
      MINSIZE 4
      MAXSIZE 8
      TYPE TRUETYPE
      ANGLE AUTO
      SIZE 15
      PARTIALS TRUE
      WRAP '\'	
      POSITION lc
    END # Label
  END  # CLASS
END  # LAYER
# příklad vrstvy s textovým popisem,
# konkrétně se jedná o čísla popisná k budovám

END  # MAPFILE