Ha egy réteg elemeihez neveket is akarunk írni a térképre, akkor egyrészt a réteg objektumban a LABELITEM elemmel meg kell határozni, hogy melyik attribútum legyen a név,
másrészt az osztályokban egy LABEL objektumban definiálni kell az adott osztályhoz tartozó betűtípust és egyebeket.
...
LABELITEM "Nev"
...
CLASS
...
LABEL
TYPE bitmap
SIZE medium
COLOR 0 0 0
END
END # class
...
Ha egy rétegen több osztályt is definiálunk, akkor ez azt is jelenti, hogy minden osztálynál meg kell adni ezt a LABEL objektumot.
Ez néha jó (ha pl. a különböző településkategóriákat más méretű betűkkel írjuk meg), néha azonban meglehetősen kényelmetlen (mondjuk egy egyszerű tematikus rétegnél, ahol csak a felületi szín változik).
Ez utóbbi esetben célszerű egy külön név réteget (annotation layer) készíteni. Az ilyen rétegek a geometriai alakzatokat nem jelenítik meg, csak a hozzájuk tartozó neveket:
...
LAYER
NAME "Megye_nevek"
TYPE annotation
DATA "megyek.shp"
STATUS DEFAULT
PROJECTION
"init=epsg:23700"
END
LABELITEM "Nev"
CLASS
NAME "megyenevek"
LABEL
TYPE bitmap
SIZE medium
COLOR 0 0 0
END
END # class megyenevek
END # layer Megye_nevek
...
Ha nem akarunk font-fájlokkal bajlódni, akkor a legegyszerűbb megoldás a beépített betűtípusok használata.
Ehhez az előző példákban is használt TYPE bitmap definícióra van szükség.
A bitmap betűtípusoknál csak ötféle méret létezik (ezt mondjuk meg a SIZE ... sor segítségével):
tiny, small, medium, large, giant. Ezek így mutatnak:
megjegyzés: Sajnos a Mercatoron jelenleg futó Maprever verzióban problémák vannak az ékezetes betűkkel bitmap betűtípusok esetén, így célszerűbb truetype fontokat használni.
A bitmap betűtípusokkal gyorsabban dolgozik a MapServer, de nem túl nagy a választékuk. Emiatt sokszor célszerű truetype fontokat alkalmazni.
A megfelelő .ttf fájlokat el kell helyezni a szerveren, és a használni kívánt típusokat definiálni egy külön fájlban (melynek neve hagyományosan fonts.list):
arial arial.ttf arial-bold arialbd.ttf
Erre pedig hivatkozzunk a MAP objektumban:
... FONTSET "fonts.list" ...
Ezek után a LABEL elem a következőképp nézhet ki:
...
LABEL
TYPE truetype
FONT arial
SIZE 12
COLOR 0 0 0
END
...
Példa a truetype címkékre:
Hogy ne kelljen mindenkinek ttf fontokat a szerverre másolni, itt van egy fontlist a mercator néhány saját fontjával. Ezek így néznek ki:
A LABEL objektumhoz rengeteg beállítás tartozik még, ezek teljes leírása itt megtalálható.
Ezek közül a legfontosabbak:
POSITION ... - azt határozza meg, hogy a nevet a hozzá tartozó pontszerű elemhez képest hova tesszük.
Két betűs kód követi, melyből az első betű a függőleges (u = upper, c = center, l = lower) , a második a vízszintes elhelyezésre (l = left, c= center, r = right) utal.
Pl.: POSITION ur - a pontokhoz képest jobbra fent legyenek a nevek. A kétbetűs kódok helyett használhatjuk az auto beállítást is; ekkor a MapServer megpróbálja a legkedvezőbb módon elhelyezni a neveket.PARTIALS true/false - ha true, akkor azok a nevek is a térképre kerülnek, amik félig kilógnak a kivágatból.ENCODING ... - segítségével meghatározhatjuk, hogy milyen kódolásúak a szövegek, amiket éppen ki akarunk iratni.
Ez nagyon előnyös, ha többféle kódolású alapanyaggal dolgozunk.A legtöbb esetben a MapServer mozaikolva küldi a térképet a kliens oldali megjelenítőnek. Ilyenkor a mozaikdarabok határán megszakadhatnak a nevek. Ez elkerülhető, ha a neveket tartalmazó rétegeken beszúrjuk a következő sort a mapfile-ba:
... LAYER ... PROCESSING "LABEL_NO_CLIP=ON" ... END ...