Zoals Mapserver werkt

De vorige keer hebben we gesproken over een aantal criteria waarom MapServer en de basisprincipes van installatie. Laten we nu eens kijken naar de werking ervan in een oefening met de kaarten van de Chiapas cuates.

 mapserver geoserver Waar is gemonteerd

Nadat Apache is geïnstalleerd, is de standaard MapServer-publicatiedirectory de map OSGeo4W direct boven C: /

Binnenin zijn er verschillende mappen met applicaties, afhankelijk van wat er is geïnstalleerd, maar de map voor publicatie moet in apache zitten. In dit geval is de map met de naam gis.

  • Dan bevat de gegevensmap de lagen, orthophoto, enz.
  • In de map etc staan ​​de true-type fonts die voor de labels worden gebruikt, met de extensie .ttf. Hier is ook een txt-bestand dat ze opheft en een ander dat symbolen definieert.
  • En eindelijk in de map gaan httdocs naar de webpagina's die de dienst verhogen.
  • mapserver geoserver

De webpagina

In het voorbeeld gebruik ik de case die de laatste keer is weergegeven. Het bevat in feite een indexbestand dat doorverwijst naar een bestand met een phtml-extensie, en dit verhoogt op zijn beurt de functies die bovenop een php en de kaarten zijn gebouwd. Een map bevat de afbeeldingen die vanaf de pagina zijn gelinkt.

mapserver geoserver

Als we ernaar kijken, is de phtml gewoon de shell die is opgebouwd uit tabellen, en roept de mapscript / php-functies op. U moet opstaan ​​met:

http://localhost/gis/gispalenque.phtml

Hieronder volgt het resultaat:

  • naar het centrum de functie GMapDrawMap (),
  • rechts de oproep naar keymap GMapDrawKeyMap (),
  • de schaalbalk hieronder GMapDrawScaleBar (),
  • en in het geval van de implementatie functies, een voorwaarde met betrekking tot de lijstbox if (! IsHtmlMode ()) echo "  met beslissingen: ZOOM_IN, ZOOM_OUT, RECENTER, QUERY_POINT.

De implementatie ziet er al uit:

mapserver geoserver

De .map-bestanden

De combinatie van de publicatie Mapserver is in wat Apache ophaalt, die php doorgeeft mapscript en dat komt dan uit die schaal. Maar de meeste wetenschap zit in .map-bestanden, niet te verwarren met bestanden die zijn gegenereerd door Mapinfo, Manifold of Mobile Mapper Office met dezelfde extensie.

Deze .map zijn tekstbestanden die de kaart in scriptvorm bevatten. Deze kunnen worden gemaakt met desktopprogramma's zoals Quantum GIS, als je kijkt, is er een voor de hoofdkaart, een voor de Keymap en twee voor de OGC wms- en wfs-services. Laten we eens kijken hoe mapscript werkt:

MAP

NAME PALENQUE_DEMO
STATUS AAN
SIZE 600 450
SYMBOLSET ../etc/symbols.txt
EXTENT 604299 1933386 610503 1939300 #LIJST VAN ALLE KAART VAN PALENQUE
#EXTENT 605786 1935102 608000 1938800 #SOLO DE 01-SECTOR
EENHEDEN METERS
SHAPEPATH "../data"
TRANSPARENT AAN
IMAGECOLOR 255 255 255
FONTSET ../etc/fonts.txt

  • MAP geeft startschrift aan
  • STATUS, geeft aan of de standaardkaart is ingeschakeld of niet
  • SIZE is de grootte van het scherm
  • SYMBOLSET toont het pad van de symbolen
  • EXTENT zijn de weergavecoördinaten. Het # -symbool wordt gebruikt om annotaties te maken
  • EENHEDEN voor eenheden
  • SHAPEPATH, het pad waar de lagen zijn
  • Alles aan het einde eindigt met het END commando

Binnen begint de code met een opdrachtregel en eindigt met END, bijvoorbeeld voor minimum en maximumschaal; map van tijdelijke beelden:

WEB
  MINSCALE 2000000
  MAXSCALE 50000000

IMAGEPATH "C: \ OSGeo4W / tmp / ms_tmp /"
  IMAGEURL "/ ms_tmp /"
EINDE

mapserver geoserverDe schaalbalk:

schaalaanduiding
  IMAGECOLOR 255 255 255
  LABEL
    KLEUR 0 0 0
    MAAT KLEIN
  EINDE
  SIZE 300 5
  KLEUR 255 255 255
  ACHTERGRONDKLEUR 0 0 0
  OUTLINECOLOR 0 0 0
  UNITS kilometers
  INTERVALLEN 3
  STATUS AAN
EINDE

mapserver geoserverEen rasterlaag: die op de achtergrond gaat, met een beschrijving in de lijst als "Orthophoto", van een tiff in de datamap:

 

 

LAAG
  NAME orthophoto
  METADATA
    "BESCHRIJVING" "OrtoFoto"
  EINDE
  TYPE RASTER
  STATUS UIT
  DATA "C: \ OSGeo4W / apps / gis / data / orthophotoGral.tif"
  #OFFSITE 0 0 0
EINDE

Een shp-laag van polygonen, gethematiseerd op basis van criteria, een aantal gegevens op een html-sjabloon, met een sans-letterlabel, grootte 6, zwarte kleur en witte randen van 5-buffer ...

mapserver geoserver

LAAG
  NAME-sector02Zone
  TYPE POLYGON
  STATUS UIT
  TRANSPARANTIE 50
  OMVANG 607852 1935706 610804 1938807 METADATA
    "BESCHRIJVING" "Thema op waardenector 02"
    "RESULT_FIELDS" "MsLink Cve_Mz Cve_Pred prop Area Perimeter VALUE"
  EINDE
  DATA PALENQUE_SECTOR01
  SJABLOON "ttt_query.html"
  TOLERANTIE 5
  #TOLERANCEUNITS PIXELS
  LABELITEM "WAARDE"
  CLASSITEM "WAARDE"
  LABELCACHE OP
  KLASSE
    SYMBOL 1
    KLEUR 128 128 128
    OUTLINECOLOR 0 0 0
    NAAM "ZonaNULL"
    EXPRESSION ([VALUE] = 0)
    LABEL
         HOEK AUTO
         KLEUR 0 0 0
         FONT sans
         TYPE TRUETYPE
         POSITIE cc
        
PARTIALEN ONWAAR
         BUFFER 5
         SIZE 6
         OUTLINECOLOR 200 200 200
    EINDE
  END #class 0-waarde
  KLASSE
    SYMBOL 3
    KLEUR 255 128 128
    #COLOR -1 -1 -1 #SIN FILLING

.... en zo dicht bij

EINDE
  END #Class Value
END # Layer

Concluderend

Daarom wordt het werken met mapserver, hoewel het vrij eenvoudig is, complex en zeer beperkt voor grote taken omdat alles in de .map staat. Het grootste nadeel is dat alles te voet wordt gedaan, zoals het definiëren van elke kleur in een thema, en daarom ontstaan ​​er tools zoals CartoWeb, die werkt op Mapserver maar ingebouwde plug-ins en voorbeelden met kenmerken die deze primitieve versie eruit laten zien de readme eerst:

  • Werk aparte frames, met AJAX om ze afzonderlijk te vernieuwen
  • Parseer de code, zolang een script het .map opnieuw schrijft op basis van parametriabele criteria
  • Dynamische back scrolling zonder vernieuwing te vragen, alsof het een flitslaag was
  • Online vector bewerking, onmiddellijke cache schrijven
  • Download laag in vectorvorm
  • Exporteer naar Google Earth
  • PDF genereren vanaf de implementatie

In een volgende zullen we CartoWeb bekijken, hier laat ik de link naar de belangrijkste voorbeelden.

3 Antwoorden op "Hoe Mapserver werkt"

  1. Hallo,

    Ik probeer een laag uit de .map te bellen, als volgt:

    LAAG
    NAME test_houses
    TYPE PUNT
    CONNECTIONTYPE OGR
    VERBINDING # »virtual.ovf»
    »

    xxxxx
    EXEC …….
    eess_id
    wkbPoint
    WGS84

    »

    Mijn probleem is dat de DSN-service problemen geeft: bij het aanvragen van een GetCapabilities retourneert het het databasewachtwoord ... kan ik een bestand aanroepen om te voorkomen dat het wachtwoord wordt "weggegeven" of is het een DSN-fout ???? Dank je!

  2. MapServer is een populaire Open Source-project waarvan het doel is om dynamische ruimtelijke kaarten over het internet te tonen. Een gemonteerde drive is een drive die is toegewezen aan een lege map op een volume dat het NTFS-bestandssysteem gebruikt. Gemonteerde schijven functioneren als elke andere schijf, maar worden toegewezen aan rijpaden in plaats van letters te schrijven.

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd.

Deze site gebruikt Akismet om spam te verminderen. Ontdek hoe uw reactiegegevens worden verwerkt.