Cartografia

Πώς λειτουργεί το Mapserver

Την τελευταία φορά μιλήσαμε για κάποια κριτήρια γιατί MapServer και τα βασικά της εγκατάστασης. Ας δούμε τώρα κάτι από τη λειτουργία του σε μια άσκηση με τους χάρτες των φίλων Τσιάπας.

 διακομιστής χάρτης γεωδιακομιστής όπου είναι τοποθετημένο

Μόλις εγκατασταθεί το Apache, ο προεπιλεγμένος κατάλογος δημοσίευσης του MapServer είναι ο φάκελος OSGeo4W ακριβώς πάνω από το C:/

Στο εσωτερικό, υπάρχουν διαφορετικοί φάκελοι με εφαρμογές ανάλογα με το τι είναι εγκατεστημένο, αλλά ο φάκελος για δημοσίευση πρέπει να μπει μέσα στον apache. Σε αυτή την περίπτωση ο φάκελος που ονομάζεται gis.

  • Στη συνέχεια, μέσα, ο φάκελος δεδομένων περιέχει τα επίπεδα, ορθοφωτογραφία κ.λπ.
  • Στο φάκελο etc, υπάρχουν οι γραμματοσειρές αληθινού τύπου που χρησιμοποιούνται για τις ετικέτες, με επέκταση .ttf. Επίσης εδώ είναι ένα αρχείο txt που τα ανεβάζει και ένα άλλο που ορίζει σύμβολα.
  • Και τέλος στο φάκελο httdocs βρίσκονται οι ιστοσελίδες που εκκινούν την υπηρεσία.
  • διακομιστής χάρτης γεωδιακομιστής

Η ιστοσελίδα

Στο παράδειγμα, θα χρησιμοποιήσω την περίπτωση που παρουσιάστηκε την προηγούμενη φορά. Βασικά περιέχει ένα αρχείο ευρετηρίου που ανακατευθύνει σε ένα με επέκταση phtml και αυτό με τη σειρά του αυξάνει τις λειτουργίες που είναι χτισμένες σε μια php και τους χάρτες. Ένας φάκελος περιέχει τις εικόνες που συνδέονται από τη σελίδα.

διακομιστής χάρτης γεωδιακομιστής

Αν το κοιτάξετε, το phtml είναι απλώς το κέλυφος που έχει δημιουργηθεί από πίνακες και καλεί τις συναρτήσεις mapscript/php. Θα πρέπει να αυξηθεί χρησιμοποιώντας:

http://localhost/gis/gispalenque.phtml

Παρακάτω είναι το αποτέλεσμα εργασίας:

  • στο κέντρο η συνάρτηση GMapDrawMap(),
  • στα δεξιά η κλήση προς keymap GMapDrawKeyMap(),
  • η γραμμή κλίμακας κάτω GMapDrawScaleBar(),
  • και στην περίπτωση των λειτουργιών εμφάνισης, μια συνθήκη σχετικά με το πλαίσιο λίστας εάν (!IsHtmlMode()) ηχώ "  με αποφάσεις: ZOOM_IN, ZOOM_OUT, RECENTER, QUERY_POINT.

Όταν εκτελείται ήδη, η οθόνη μοιάζει με αυτό:

διακομιστής χάρτης γεωδιακομιστής

Τα αρχεία .map

Ο συνδυασμός της ανάρτησης του Mapserver βρίσκεται σε αυτό που δημιουργείται από τον apache, το οποίο του αποστέλλεται από την php μέσω χάρτης και μετά βγαίνει από αυτό το κέλυφος. Αλλά το μεγαλύτερο μέρος της επιστήμης βρίσκεται στα αρχεία .map, που δεν πρέπει να συγχέεται με αυτά που δημιουργούνται από το Mapinfo, το Manifold ή το Mobile Mapper Office με την ίδια επέκταση.

Αυτά τα .map είναι αρχεία κειμένου, τα οποία περιέχουν τον χάρτη σε μορφή σεναρίου. Αυτά μπορούν να δημιουργηθούν με προγράμματα επιτραπέζιου υπολογιστή όπως το Quantum GIS, εάν οριστεί, υπάρχει ένα για τον κύριο χάρτη, ένα για το Keymap και δύο για τις υπηρεσίες OGC wms και wfs. Ας δούμε πώς λειτουργεί το mapscript:

MAP

ΟΝΟΜΑ PALENQUE_DEMO
ΚΑΤΑΣΤΑΣΗ ΕΝΕΡΓΗ
ΜΕΓΕΘΟΣ 600 450
SYMBOLSET ../etc/symbols.txt
ΕΚΤΑΣΗ 604299 1933386 610503 1939300 #ΠΡΟΒΟΛΗ ΟΛΟΥ ΤΟΥ ΧΑΡΤΗ ΤΗΣ ΠΑΛΕΝΚΟΥ
#ΕΚΤΑΣΗ 605786 1935102 608000 1938800 # ΜΟΝΟ ΤΟΜΕΑΣ 01
ΜΟΝΑΔΙΚΑ ΜΕΤΡΑ
SHAPEPATH "../data"
ΔΙΑΦΑΝΗ ΑΝΩ
IMAGECOLOR 255 255 255
FONTSET ../etc/fonts.txt

  • Το MAP υποδεικνύει ότι ξεκινά το σενάριο
  • STATUS, υποδεικνύει εάν ο προεπιλεγμένος χάρτης είναι ενεργοποιημένος ή όχι
  • SIZE είναι το μέγεθος της οθόνης
  • Το SYMBOLSET δείχνει τη διαδρομή των συμβόλων
  • EXTENT είναι οι συντεταγμένες της οθόνης. Το σύμβολο # χρησιμοποιείται για τη δημιουργία σχολιασμών.
  • ΜΟΝΑΔΕΣ για μονάδες
  • SHAPEPATH, το μονοπάτι όπου βρίσκονται τα στρώματα
  • Όλα θα τελειώσουν τελικά με την εντολή ΤΕΛΟΣ

Στο εσωτερικό, ο κώδικας ξεκινά με μια γραμμή εντολών και τελειώνει με ΤΕΛΟΣ, για παράδειγμα για ελάχιστη και μέγιστη κλίμακα. κατάλογος προσωρινών εικόνων:

WEB
  MINSCALE 2000000
  MAXSCALE 50000000

IMAGEPATH "C:\OSGeo4W/tmp/ms_tmp/"
  IMAGEURL "/ms_tmp/"
ΤΕΛΟΣ

διακομιστής χάρτης γεωδιακομιστήςΗ γραμμή κλίμακας:

ΚΛΙΜΑΚΑ
  IMAGECOLOR 255 255 255
  ΕΤΙΚΕΤΑ
    ΧΡΩΜΑ 0 0 0
    Μικρό μέγεθος
  ΤΕΛΟΣ
  ΜΕΓΕΘΟΣ 300 5
  ΧΡΩΜΑ 255 255 255
  ΧΡΩΜΑ ΥΠΟΔΟΚΟΥ 0 0 0
  ΧΡΩΜΑ ΠΕΡΙΕΧΟΥ 0 0 0
  ΜΟΝΑΔΕΣ χιλιόμετρα
  ΔΙΑΣΤΗΜΑΤΑ 3
  ΚΑΤΑΣΤΑΣΗ ΕΝΕΡΓΗ
ΤΕΛΟΣ

διακομιστής χάρτης γεωδιακομιστήςΈνα επίπεδο ράστερ: που πηγαίνει στο παρασκήνιο, με μια περιγραφή στη λίστα ως "Ορθοφωτογραφία", από ένα tiff που βρίσκεται στο φάκελο δεδομένων:

 

 

ΣΤΡΩΜΑ
  ΟΝΟΜΑ ορθοφωτογραφία
  ΜΕΤΑΔΕΔΟΜΕΝΑ
    "ΠΕΡΙΓΡΑΦΗ" "OrthoPhoto"
  ΤΕΛΟΣ
  ΤΥΠΟΣ ΡΑΣΤΕΡ
  ΚΑΤΑΣΤΑΣΗ ΑΠΕΝΕΡΓΟΠΟΙΗΣΗ
  ΔΕΔΟΜΕΝΑ "C:\OSGeo4W/apps/gis/data/ortofotoGral.tif"
  #OFFSITE 0 0 0
ΤΕΛΟΣ

Ένα στρώμα shp πολυγώνων, με θέμα βάσει κριτηρίων, που συγκεντρώνει ορισμένα δεδομένα σε ένα πρότυπο html, με ετικέτα γραμματοσειράς sans, μέγεθος 6, μαύρο χρώμα και λευκά περιθώρια buffer 5...

διακομιστής χάρτης γεωδιακομιστής

ΣΤΡΩΜΑ
  NAME τομέας02Ζώνη
  ΤΥΠΟΣ ΠΟΛΥΓΩΝΟ
  ΚΑΤΑΣΤΑΣΗ ΑΠΕΝΕΡΓΟΠΟΙΗΣΗ
  ΔΙΑΦΑΝΕΙΑ 50
  ΕΚΤΑΣΗ 607852 1935706 610804 1938807 ΜΕΤΑΔΕΔΟΜΕΝΑ
    "ΠΕΡΙΓΡΑΦΗ" "Θεματική κατά τομέα αξίας 02"
    "RESULT_FIELDS" "MsLink Cve_Mz Cve_Pred Prop Area Perimeter VALUE"
  ΤΕΛΟΣ
  DATA PALENQUE_SECTOR01
  ΠΡΟΤΥΠΟ "ttt_query.html"
  ΑΝΟΧΗ 5
  #ΑΝΕΚΤΙΚΟΙ ΜΟΝΑΔΕΣ ΠΙΞΕΛ
  LABELITEM "VALUE"
  ΤΑΞΗ "ΑΞΙΑ"
  ΕΤΙΚΕΤΑ ΕΝΕΡΓΟΠΟΙΗΜΕΝΗ ΠΑΡΑΜΟΡΦΗ μνήμη
  ΤΆΞΗ
    ΣΥΜΒΟΛΟ 1
    ΧΡΩΜΑ 128 128 128
    ΧΡΩΜΑ ΠΕΡΙΕΧΟΥ 0 0 0
    ΟΝΟΜΑ "ZoneNULL"
    EXPRESSION ([VALUE]=0)
    ΕΤΙΚΕΤΑ
         ΑΥΤΟΜΑΤΗ ΓΩΝΙΑ
         ΧΡΩΜΑ 0 0 0
         FONT sans
         TYPE TRUE TYPE
         ΘΕΣΗ cc
        
ΕΠΙΜΕΡΙΚΑ ΛΑΘΟΣ
         BUFFER 5
         ΜΕΓΕΘΟΣ 6
         ΧΡΩΜΑ ΠΕΡΙΕΧΟΥ 200 200 200
    ΤΕΛΟΣ
  END #class τιμή 0
  ΤΆΞΗ
    ΣΥΜΒΟΛΟ 3
    ΧΡΩΜΑ 255 128 128
    #ΧΡΩΜΑ -1 -1 -1 #ΧΩΡΙΣ ΓΕΜΙΣΜΑ

…. και ούτω καθεξής μέχρι το κλείσιμο με

ΤΕΛΟΣ
  ΤΕΛΟΣ #Αξία κατηγορίας
ΤΕΛΟΣ#Επίπεδο

Για να ολοκληρώσω

Ως εκ τούτου, η εργασία με το διακομιστή χάρτη, αν και είναι αρκετά απλή, γίνεται αρκετά περίπλοκη και πολύ περιορισμένη για μεγάλες εργασίες, επειδή τα πάντα βρίσκονται στο .map. Το μεγαλύτερο μειονέκτημα είναι ότι όλα γίνονται με τα πόδια, όπως ο καθορισμός κάθε χρώματος σε ένα θέμα, και για αυτόν τον λόγο προκύπτουν εργαλεία όπως το CartoWeb, το οποίο λειτουργεί στον Mapserver αλλά διαθέτει ενσωματωμένα πρόσθετα και παραδείγματα με χαρακτηριστικά που κάνουν αυτήν την πρωτόγονη έκδοση παραμένουν αμετάβλητοι Διαβάστε πρώτα:

  • Δουλέψτε ξεχωριστά καρέ, με AJAX για να τα ανανεώσετε ξεχωριστά
  • Ανάλυση του κώδικα, αρκεί ένα σενάριο να ξαναγράψει το .map με βάση παραμετροποιήσιμα κριτήρια
  • Κάντε τη μετατόπιση δυναμική χωρίς να απαιτείται ανανέωση, σαν να ήταν ένα στρώμα φλας
  • Online διανυσματική επεξεργασία, άμεση εγγραφή πάνω από την κρυφή μνήμη
  • Κατεβάστε το επίπεδο σε διανυσματική μορφή
  • Εξαγωγή στο Google Earth
  • Δημιουργήστε PDF της ανάπτυξης

Σε επόμενο θα ρίξουμε μια ματιά στο CartoWeb, εδώ είναι ο σύνδεσμος με τα κύρια παραδείγματα.

Golgi Alvarez

Συγγραφέας, ερευνητής, ειδικός στα Μοντέλα Διαχείρισης Γης. Έχει συμμετάσχει στη σύλληψη και εφαρμογή μοντέλων όπως: Εθνικό Σύστημα Διαχείρισης Περιουσίας SINAP στην Ονδούρα, Μοντέλο Διαχείρισης Μικτών Δήμων στην Ονδούρα, Ολοκληρωμένο Μοντέλο Διαχείρισης Κτηματολογίου - Μητρώου στη Νικαράγουα, Σύστημα Διαχείρισης της Επικράτειας SAT στην Κολομβία . Συντάκτης του ιστολογίου γνώσης Geofumadas από το 2007 και δημιουργός της Ακαδημίας AulaGEO που περιλαμβάνει περισσότερα από 100 μαθήματα σε θέματα GIS - CAD - BIM - Digital Twins.

Σχετικά άρθρα

3 Σχόλια

  1. Γεια σας,

    Προσπαθώ να καλέσω ένα επίπεδο από το .map, ως εξής:

    ΣΤΡΩΜΑ
    NAME houses_test
    ΣΗΜΕΙΟ ΤΥΠΟΥ
    ΤΥΠΟΣ ΣΥΝΔΕΣΗΣ OGR
    ΣΥΝΔΕΣΗ #"virtual.ovf"
    "

    xxxxx
    ΕΚΤΕΛΕΣΗ…….
    eess_id
    wkbPoint
    WGS84

    "

    Το πρόβλημά μου είναι ότι η υπηρεσία DSN δίνει προβλήματα: όταν ζητάει ένα GetCapabilities επιστρέφει τον κωδικό πρόσβασης της βάσης δεδομένων... μπορώ να κάνω μια κλήση σε ένα αρχείο για να μην "δώσω" τον κωδικό πρόσβασης ή είναι σφάλμα DSN;;;; Ευχαριστώ!

  2. Ο MapServer είναι ένα δημοφιλές έργο ανοιχτού κώδικα, σκοπός του οποίου είναι η εμφάνιση δυναμικών χωρικών χαρτών μέσω του Διαδικτύου. Μια προσαρτημένη μονάδα δίσκου είναι μια μονάδα δίσκου που αντιστοιχίζεται σε έναν κενό φάκελο σε έναν τόμο που χρησιμοποιεί το σύστημα αρχείων NTFS. Οι τοποθετημένες μονάδες δίσκου λειτουργούν όπως όλες οι άλλες μονάδες, αλλά τους εκχωρούνται διαδρομές μονάδας δίσκου αντί για γράμματα μονάδας δίσκου.

Αφήστε ένα σχόλιο

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

Επιστροφή στην κορυφή κουμπί