Som Mapserver fungerar
Förra gången vi pratade om varför vissa kriterier MapServer och grunderna för installation. Låt oss nu se en del av dess funktion i en övning med kartorna över Chiapas-kuaten.
Där den är monterad
När Apache har installerats är mappen OSGeo4W standard MapServer-katalogen direkt över C: /
Inuti finns det olika mappar med applikationer beroende på vad som är installerat, men mappen för publicering måste gå in i apache. I det här fallet heter mappen gis.
- Inuti innehåller datapappen lagren, ortofotoen etc.
- I mappen etc finns de typsnitt av äkta typ som används för etiketterna, med tillägget .ttf. Här är också en txt-fil som lyfter dem och en annan som definierar symboler.
- Och slutligen i mappen httdocs går webbsidorna som lyfter tjänsten.
Webbplatsen
I exemplet kommer jag att använda det fall som visades förra gången. Den innehåller i grunden en indexfil som omdirigeras till en med en phtml-förlängning, vilket i sin tur höjer funktionerna byggda ovanpå en php och kartorna. En mapp innehåller bilderna länkade från sidan.
Om vi tittar på det är phtml bara skalet byggt från tabeller och kallar till mapscript / php-funktionerna. Du bör gå upp med:
http://localhost/gis/gispalenque.phtml
Resultatet visas nedan:
- till mitten av funktionen GMapDrawMap (),
- till höger kallas till GMapDrawKeyMap keymap (),
- skalfältet nedan GMapDrawScaleBar (),
- och i händelse av installationsfunktioner, ett villkor för listrutan om (! IsHtmlMode ()) ekar " med besluten: ZOOM_IN, ZOOM_OUT, RECENTER, QUERY_POINT.
Redan körs ser displayen ut så här:
.mappfilerna
Kombinationen av Mapserver-publikationen ligger i vad Apache höjer, vilket skickar php genom mapscript och det kommer sedan ut ur det skalet. Men det mesta av vetenskapen finns i .map-filer, inte att förväxla med de som genereras av Mapinfo, Manifold eller Mobile Mapper Office med samma tillägg.
Dessa .map är textfiler som innehåller kartan i skriptform. Dessa kan skapas med stationära program som Quantum GIS, om du ser finns det en för huvudkartan, en för Keymap och två för OGC wms- och wfs-tjänsterna. Låt oss se hur mapscript fungerar:
KARTA
NAME PALENQUE_DEMO
STATUS PÅ
STORLEK 600 450
SYMBOLSET ../etc/symbols.txt
EXTENT 604299 1933386 610503 1939300 #Vy av hela kartan av Palenque
#EXTENT 605786 1935102 608000 1938800 #SOLO 01 SEKTOREN
ENHETER METERS
SHAPEPATH "../data"
TRANSPARENT PÅ
IMAGECOLOR 255 255 255
FONTSET ../etc/fonts.txt
- MAP indikerar att du startar skriptet
- STATUS, indikerar om standardkartan är på eller inte
- STORLEK är storleken på displayen
- SYMBOLSET visar symbolens rutt
- EXTENT är displaykoordinaterna. Symbolen # används för att göra anteckningar
- Enheter för enheter
- SHAPEPATH, den väg där lagren är
- Allt i slutändan slutar med kommandot END
Inuti börjar koden med en kommandorad, och slutar med END, till exempel för minsta och maximala skalan. katalog över tillfälliga bilder:
WEB
MINSCALE 2000000
MAXSCALE 50000000IMAGEPATH "C: \ OSGeo4W / tmp / ms_tmp /"
IMAGEURL "/ ms_tmp /"
SLUT
Skalfältet:
Scalebar
IMAGECOLOR 255 255 255
ETIKETT
FÄRG 0 0 0
Storlek Small
SLUT
STORLEK 300 5
FÄRG 255 255 255
BACKGROUNDCOLOR 0 0 0
OUTLINECOLOR 0 0 0
UNITS kilometer
INTERVALLER 3
STATUS PÅ
SLUT
Ett rasterskikt: som går i bakgrunden, med en beskrivning i listan som "Orthophoto", från en tiff som finns i datamappen:
SKIKT
NAME orthophoto
METADATA
"BESKRIVNING" "OrtoFoto"
SLUT
TYP RASTER
STATUS AV
DATA "C: \ OSGeo4W / apps / gis / data / ortofotoGral.tif"
#OFFSITE 0 0 0
SLUT
Ett lager shp polygon tematizada baserat på kriterier, höja vissa uppgifter på en HTML-mall med en etikett sans teckensnitt, storlek 6, svarta och vita kanter buffert 5 ...
SKIKT
NAME sektor02Zone
TYPE POLYGON
STATUS AV
ÖPPENHET 50
OMFATTNING 607852 1935706 610804 1938807 METADATA
"BESKRIVNING" "Tema efter värdesektor 02"
"RESULT_FIELDS" "MsLink Cve_Mz Cve_Pred prop Area Perimeter VALUE"
SLUT
DATA PALENQUE_SECTOR01
TEMPLATE "ttt_query.html"
TOLERANCE 5
#TOLERANCEUNITS PIXELS
LABELITEM "VALUE"
KLASSITEM "VALUE"
LABELCACHE ON
KLASS
SYMBOL 1
FÄRG 128 128 128
OUTLINECOLOR 0 0 0
NAMN "ZonaNULL"
EXPRESSION ([VALUE] = 0)
ETIKETT
ANGLE AUTO
FÄRG 0 0 0
FONT sans
TYPE TRUETYPE
POSITION cc
DELAR FALSK
BUFFER 5
SIZE 6
OUTLINECOLOR 200 200 200
SLUT
END #class 0 värde
KLASS
SYMBOL 3
FÄRG 255 128 128
#COLOR -1 -1 -1 #SIN FILLING
.... och så vidare tills stängning med
SLUT
END #Class Value
END # Layer
Sammanfattningsvis
Därför arbetar det med mapserver, även om det är ganska enkelt, blir det komplicerat och mycket begränsat för stora jobb eftersom allt finns i .map. Den största nackdelen är att allt görs till fots, som att definiera varje färg i en tema, och av detta skäl uppstår verktyg som CartoWeb, som fungerar på Mapserver men ger inbyggda plugins och exempel med egenskaper som gör att denna primitiva version ser ut de readme först:
- Arbeta separata ramar, med AJAX för att uppdatera dem separat
- Parsa koden, förutsatt att ett skript omskriver .kartet baserat på parametrera kriterier
- Dynamisk backrullning utan att behöva uppdateras, som om det var ett flashlager
- Online vektorredigering, omedelbar skrivning på cachen
- Ladda ner lager i vektorform
- Exportera till Google Earth
- Generera PDF av utplaceringen
På en nästa kommer vi att ta en titt på CartoWeb, här lämnar jag länken till huvudexemplen.
Det finns ett sätt att få den vanliga phtml-mallutmatningen, tack
Hej,
Jag försöker ringa ett lager från .mappen, enligt följande:
SKIKT
NAME testhus
TYPPUNKT
ANSLUTNINGTYPE OGR
ANSLUTNING #"virtual.ovf"
"
xxxxx
EXEC…….
eess_id
wkbPoint
WGS84
"
Mitt problem är att DSN-tjänsten orsakar problem: när man begär en GetCapabilities returnerar den databaslösenordet... kan jag ringa en fil för att undvika att "ge bort" lösenordet eller är det ett DSN-fel???? Tack!
MapServer är ett populärt Open Source-projekt vars syfte är att visa dynamiska rumsliga kartor över Internet. En monterad enhet är en enhet som är mappad till en tom mapp på en volym som använder NTFS-filsystemet. Monterade enheter fungerar som alla andra enheter, men de tilldelas drivvägar istället för att driva bokstäver.