Sådan fungerer Mapserver
Sidste gang talte vi om nogle kriterier hvorfor MapServer og det grundlæggende i installationen. Lad os nu se noget af dets funktion i en øvelse med kortene over Chiapas-vennerne.
hvor den er monteret
Når Apache er installeret, er standard MapServer publiceringsmappen OSGeo4W mappen direkte over C:/
Indeni er der forskellige mapper med applikationer alt efter hvad der er installeret, men mappen til udgivelse skal gå inde i apache. I dette tilfælde mappen kaldet gis.
- Derefter inde i datamappen indeholder lagene, ortofoto osv.
- I mappen etc er der de ægte skrifttyper, der bruges til etiketterne, med en .ttf-udvidelse. Her er også en txt-fil, der rejser dem, og en anden, der definerer symboler.
- Og til sidst i httdocs-mappen er de websider, der starter tjenesten.
Websiden
I eksemplet vil jeg bruge casen vist forrige gang. Grundlæggende indeholder den en indeksfil, der omdirigerer til en med en phtml-udvidelse, og dette hæver igen funktionerne bygget på en php og kortene. En mappe indeholder de billeder, der er linket til fra siden.
Hvis du ser på det, er phtml'en bare skal bygget af tabeller, og kalder til mapscript/php funktionerne. Det skal hæves ved hjælp af:
http://localhost/gis/gispalenque.phtml
Nedenfor er arbejdsresultatet:
- til centret funktionen GMapDrawMap(),
- til højre opkaldet til keymap GMapDrawKeyMap(),
- skalalinjen ned GMapDrawScaleBar(),
- og i tilfælde af displayfunktioner, en betingelse vedrørende listeboksen hvis (!IsHtmlMode()) ekko " med beslutninger: ZOOM_IN, ZOOM_OUT, RECENTER, QUERY_POINT.
Kører allerede, skærmen ser sådan ud:
.map-filerne
Kombinationen af Mapserver posten er i det, der er rejst af apache, som sendes til det af php via kortskrift og så kommer det ud af den skal. Men det meste af videnskaben ligger i .map-filerne, ikke at forveksle med dem, der er genereret af Mapinfo, Manifold eller Mobile Mapper Office med samme udvidelse.
Disse .map er tekstfiler, som indeholder kortet i scriptform. Disse kan oprettes med desktop-programmer som Quantum GIS, hvis det er indstillet, er der et til hovedkortet, et til Keymap og to til OGC wms- og wfs-tjenesterne. Lad os se, hvordan mapscript fungerer:
MAP
NAVN PALENQUE_DEMO
STATUS TIL
STØRRELSE 600 450
SYMBOLSET ../etc/symbols.txt
OMFANG 604299 1933386 610503 1939300 #VISNING AF HELE KORTET OVER PALENQUE
#EXTENT 605786 1935102 608000 1938800 # KUN SEKTOR 01
ENHEDSMETER
SHAPEPATH "../data"
TRANSPARENT PÅ
IMAGECOLOR 255 255 255
FONTSET ../etc/fonts.txt
- MAP angiver, at det starter scriptet
- STATUS, angiver, om standardkortet er slået til eller ej
- SIZE er størrelsen på skærmen
- SYMBOLSET viser symbolernes sti
- UDVIKLING er koordinaterne for displayet. #-symbolet bruges til at lave anmærkninger.
- ENHEDER til enheder
- SHAPEPATH, stien hvor lagene er
- Alt vil til sidst ende med END-kommandoen
Indeni starter koden med en kommandolinje og slutter med END, for eksempel for minimum og maksimum skala; bibliotek med midlertidige billeder:
WEB
MINSCALE 2000000
MAKSSKALA 50000000IMAGEPATH "C:\OSGeo4W/tmp/ms_tmp/"
IMAGEURL "/ms_tmp/"
SLUT
Skalalinjen:
SKALTABEL
IMAGECOLOR 255 255 255
LABEL
FARVE 0 0 0
STØRRELSE SMALL
SLUT
STØRRELSE 300 5
FARVE 255 255 255
BAGGRUNDSFARVE 0 0 0
OUTLINEFARVE 0 0 0
UNITS kilometer
INTERVALLER 3
STATUS TIL
SLUT
Et rasterlag: som går i baggrunden, med en beskrivelse på listen som "Ortofoto", fra en tiff placeret i datamappen:
LAYER
NAME ortofoto
METADATA
"DESCRIPTION" "OrthoPhoto"
SLUT
RASTERTYPE
STATUS FRA
DATA "C:\OSGeo4W/apps/gis/data/ortofotoGral.tif"
#OFFSITE 0 0 0
SLUT
Et shp-lag af polygoner, tema baseret på kriterier, hæver nogle data på en html-skabelon, med en sans font-etiket, størrelse 6, sort farve og hvide kanter af buffer 5...
LAYER
NAVN sektor02Zone
TYPE POLYGON
STATUS FRA
GENNEMSIGTIGHED 50
EXTENT 607852 1935706 610804 1938807 METADATA
"BESKRIVELSE" "Tema efter værdisektor 02"
"RESULT_FIELDS" "MsLink Cve_Mz Cve_Pred prop Area Perimeter VALUE"
SLUT
DATA PALENQUE_SECTOR01
SKABELON "ttt_query.html"
TOLERANCE 5
#TOLERANCEENHEDER PIXEL
LABELITEM "VALUE"
KLASSEVARE "VÆRDI"
LABEL CACHE TIL
KLASSE
SYMBOL 1
FARVE 128 128 128
OUTLINEFARVE 0 0 0
NAVN "ZoneNULL"
UDTRYK ([VALUE]=0)
LABEL
AUTO VINKEL
FARVE 0 0 0
FONT sans
TYPE ÆGTE TYPE
POSITION cc
DELVIS FALSK
BUFFER 5
SIZE 6
OUTLINEFARVE 200 200 200
SLUT
SLUT #klasseværdi 0
KLASSE
SYMBOL 3
FARVE 255 128 128
#FARVE -1 -1 -1 #INGEN FYLDNING
…. og så videre indtil der lukkes med
SLUT
SLUT #Klasseværdi
SLUT#Lag
Afslutningsvis
Derfor bliver arbejdet med mapserver, selvom det er ret simpelt, ret komplekst og meget begrænset til store job, fordi alt er i .map. Den største ulempe er, at alt foregår til fods, såsom at definere hver farve i et tema, og af denne grund opstår værktøjer som CartoWeb, som fungerer på Mapserver, men kommer med indbyggede plugins og eksempler med funktioner, der gør denne primitive version forblive uændret. han læs mig først:
- Arbejd separate rammer med AJAX for at opdatere dem separat
- Parser koden, så længe et script omskriver .map baseret på parameteriserbare kriterier
- Gør forskydningen dynamisk uden at kræve en opdatering, som om det var et flashlag
- Online vektorredigering, øjeblikkelig skrivning over cache
- Download lag i vektorform
- Eksporter til Google Earth
- Generer PDF af implementeringen
I en næste vil vi tage et kig på CartoWeb, her er linket til de vigtigste eksempler.
Er der en måde at få standard output phtml skabelonen på, tak
Hej,
Jeg forsøger at kalde et lag fra .map, som følger:
LAYER
NAME houses_test
TYPE PUNKT
TILSLUTNINGSTYPE OGR
FORBINDELSE #"virtual.ovf"
"
xxxxx
EXEC…….
eess_id
wkbPoint
WGS84
"
Mit problem er, at DSN-tjenesten giver problemer: når man anmoder om en GetCapabilities, returnerer den database-adgangskoden... kan jeg ringe til en fil for at undgå at "give væk" adgangskoden eller er det en DSN-fejl???? Tak skal du have!
MapServer er et populært Open Source-projekt, hvis formål er at vise dynamiske rumlige kort over internettet. Et monteret drev er et drev, der er knyttet til en tom mappe på en diskenhed, der bruger NTFS-filsystemet. Monterede drev fungerer som alle andre drev, men de er tildelt drevstier i stedet for drevbogstaver.