Hoe Mapserver wurket
De foarige kear hawwe wy oer guon kritearia praat MapServer en de basis fan ynstallaasje. Litte wy no wat sjen fan 'e operaasje yn in oefening mei de kaarten fan' e Chiapas-freonen.
Wêr't it opboud is
Ienkear ynstallearre Apache, de triemtafel útjouwerij foar MapServer is de OSGeo4W standert map direkt op C: /
Binnen binne d'r ferskate mappen mei applikaasjes, ôfhinklik fan wat ynstalleare is, mar de map foar publikaasje moat yn apache gean. Yn dit gefal hjit de map gis.
- Dêrnei befettet de gegevensmap de lagen, ortofoto, ensfh.
- Yn 'e map etc binne d'r echte lettertypen brûkt foar de labels, mei in .ttf-tafoeging. Hjir is ek in txt-bestân dat se opheft en in oar dat symboalen definieart.
- En úteinlik yn 'e map gean httdocs de websiden dy't de tsjinstferliening ophelje.
De webside
Yn it foarbyld sil ik de saak sjen litte dy't de lêste kear werjûn is. It befettet yn prinsipe in yndeksbestân dat trochferwiist nei in phtml-útwreiding, en dit ferheget op syn beurt de funksjes boud boppe in php en de kaarten. In map befettet de ôfbyldings dy't keppele binne fan 'e pagina.
As wy it besjogge, is de phtml gewoan de shell boud út tabellen, en ropt op nei de mapscript / php-funksjes. Jo moatte opstean mei:
http://localhost/gis/gispalenque.phtml
It resultaat is hjirûnder werjûn:
- nei it sintrum de funksje GMapDrawMap (),
- rjocht oan 'e rjocht nei GMapDrawKeyMap keymap (),
- de skale bar hjirûnder GMapDrawScaleBar (),
- en yn gefal fan ynstellingsfunksjes, in betingst oer de listbox as (! IsHtmlMode ()) echo " mei de besluten: ZOOM_IN, ZOOM_OUT, RECENTER, QUERY_POINT.
Al rint it likegoed it skerm:
De .map-bestannen
De kombinaasje fan 'e publikaasje fan Mapserver is wat smyt apache, php stjoert dy troch mapscript en dat komt dan út troch dy skulp. Mar it measte fan 'e wittenskip sit yn .map-bestannen, net te betiizjen mei dy generearre troch Mapinfo, Manifold, as Mobile Mapper Office mei deselde tafoeging.
Dizze .map binne tekstbestannen, dy't de kaart befetsje yn skriptfoarm. Dizze kinne wurde makke mei buroblêdprogramma's lykas Quantum GIS, as jo merke dat d'r ien is foar de haadkaart, ien foar de Keymap en twa foar de OGC wms- en wfs-tsjinsten. Litte wy sjen hoe't mapscript wurket:
MAP
NAME PALENQUE_DEMO
STATUS ON
SIZE 600 450
SYMBOLSET ../etc/symbols.txt
604299 1933386 610503 1939300 SAFOLLE FAN ALLE #VISTA kaart fan Palenque
#EXTENT 605786 1935102 608000 1938800 01 #SOLO de sektor
UNITS METERS
SHAPEPATH "../data"
TRANSPARENT ON
IMAGECOLOR 255 255 255
FONTSET ../etc/fonts.txt
- MAP jout oan dat jo it skript begjinne
- STATUS, jout as de standertkaart op of net is
- SIZE is de grutte fan it display
- SYMBOLSET lit de rûte fan 'e symboalen sjen
- EXTENT binne de werjaankoördinaten. It # symboal wurdt brûkt om oantekeningen te meitsjen
- UNITS foar ienheden
- SHAPEPATH, de rûte dêr't de lagen binne
- Alles op 'e ein bringt ein oan it END kommando
Binnen, de koade begjint mei in kommando rigel, en einiget mei END, bygelyks minimaal en maksimum nivo; tydlike triemtafel of bylden:
REACH
MINSCALE 2000000
MAXSCALE 50000000IMAGEPATH "C: \ OSGeo4W / tmp / ms_tmp /"
IMAGEURL "/ ms_tmp /"
EIN
De skaalbalke:
SCALEBAR
IMAGECOLOR 255 255 255
LABEL
COLOR 0 0 0
SIZE SMALL
EIN
SIZE 300 5
COLOR 255 255 255
BACKGROUNDCOLOR 0 0 0
OUTLINECOLOR 0 0 0
UNITS kilometer
INTERVALS 3
STATUS ON
EIN
In rasterlaach: dat giet op 'e eftergrûn, mei in beskriuwing yn' e list as "Orthophoto", fan in tiff yn 'e gegevensmap:
LAYER
NAME ortofoto
METADATA
"DESCRIPTION" "OrtoFoto"
EIN
TYPE RASTER
STATUS OFF
DATA "C: \ OSGeo4W / apps / gis / data / ortofotoGral.tif"
#OFFSITE 0 0 0
EIN
In laach SHP Polygoon tematizada basearre op kritearia, ferheegjen inkele gegevens op in HTML sjabloan mei in kaartsje Sans lettertype, grutte 6, swart en wyt rânen buffer 5 ...
LAYER
NAME sektor02Zone
TYPE POLYGON
STATUS OFF
TRANSPARENCY 50
EXTENT 607852 1935706 610804 1938807 METADATA
"BESKRYWING" "Tema troch weardesektor 02"
"RESULT_FIELDS" "MsLink Cve_Mz Cve_Pred-oanbiedingsperimeter VALUE"
EIN
DATA PALENQUE_SECTOR01
TEMPLATE "ttt_query.html"
TOLERANCE 5
#TOLERANCEUNITS PIXELS
LABELITEM "VALOR"
CLASSITEM "VALOR"
LABELKACHE ON
CLASS
SYMBOL 1
COLOR 128 128 128
OUTLINECOLOR 0 0 0
NAME "ZoneNULL"
EXPRESSION ([VALUE] = 0)
LABEL
ANGLE AUTO
COLOR 0 0 0
FONT sans
TYPE TRUETYPE
POSITION cc
PARTIALS FALSE
BUFFER 5
SIZE 6
OUTLINECOLOR 200 200 200
EIN
END #class 0 wearde
CLASS
SYMBOL 3
COLOR 255 128 128
#COLOR -1 -1 -1 #SIN FILLING
... en sa fier oant it sluten fan
EIN
END #Classwearde
END # Layer
To conclude
Dêrtroch wurdt wurkjen mei mapserver, hoewol it heul ienfâldich is, kompleks en heul beheind foar grutte banen, om't alles yn 'e .map sit. It grutste neidiel is dat alles te foet wurdt dien, lykas it definiearjen fan elke kleur yn in tema, en om dizze reden ûntsteane ark lykas CartoWeb, dat wurket op Mapserver mar ynboude plugins en foarbylden bringt mei skaaimerken dy't dizze primitive ferzje derút sjogge de readme earst:
- Wurkje ôfdielingen, mei AJAX, om se apart te ferfarskjen
- Parset de koade, asjebleaft dat in skript de .map opnij basearre op parameterizierbere kritearia
- Dynamyske werom skermjen sûnder freegjen te ferfangen, as wie it in flach ljocht
- Online fektor bewurkje, fuortendaliks skriuwen op it cache
- Download ljepper yn fektorformulier
- Eksportearje nei Google Earth
- Generearje PDF fan de ynset
Yn in folgjende sille wy CartoWeb sjogge, hjirre ik de link nei de haad foarbylden.
Der is in manier om de standert phtml-templaatútfier te hawwen, tank
hallo,
Ik besykje in lagen te neamen fan 'e .map, sa folget:
LAYER
NAME testhouses
TYPE POINT
CONNECTIONTYPE OGR
Ferbining #"virtual.ovf"
"
xxxxx
EXEC …….
eess_id
wkbPoint
WGS84
"
Myn probleem is dat de DSN-tsjinst foar problemen soarget: by it oanfreegjen fan in GetCapabilities wurdt it databankwachtwurd weromjûn ... kin ik in oprop meitsje nei in bestân om foar te kommen dat it wachtwurd "ôfjaan" wurdt of is it in DSN-flater???? Tank!
MapServer is in populêre Open Source projekt doel is om werjaan Waans dynamyske romtlike kaarten oer it ynternet. In mounted skiif is in stasjon yn kaart brocht Dat is in lege map ta in folume op de NTFS triem Dat systeem gebrûk. Opdielde funksjes funksjonearje as alle oare driuwfearren, mar se wurde tagongrassen ynstee fan triemenbrieven.