Cartografia

วิธีการทำงานของ Mapserver

เมื่อก่อนหน้าเราได้พูดถึงหลักเกณฑ์บางประการ MapServer และพื้นฐานของการติดตั้ง ตอนนี้เรามาดูการดำเนินการบางอย่างในแบบฝึกหัดที่มีแผนที่ของ Chiapas cuates

 mapserver geoserver ติดตั้งอยู่ที่ไหน

เมื่อมีการติดตั้ง Apache ไดเร็กทอรีการเผยแพร่ MapServer เริ่มต้นจะเป็นโฟลเดอร์ OSGeo4W โดยตรงเหนือ C: /

ภายในมีโฟลเดอร์ต่าง ๆ พร้อมแอพพลิเคชั่นขึ้นอยู่กับสิ่งที่ติดตั้งไว้ แต่โฟลเดอร์สำหรับสิ่งพิมพ์ต้องอยู่ใน apache ในกรณีนี้เรียกว่าโฟลเดอร์ gis

  • จากนั้นภายในโฟลเดอร์ข้อมูลประกอบด้วยเลเยอร์ orthophoto ฯลฯ
  • ในโฟลเดอร์ etc มีฟอนต์ประเภทจริงที่ใช้สำหรับเลเบลโดยมีนามสกุล. ttf นี่คือไฟล์ txt ที่ยกขึ้นและอีกไฟล์หนึ่งที่กำหนดสัญลักษณ์
  • และสุดท้ายในโฟลเดอร์ httdocs ไปที่หน้าเว็บที่เพิ่มบริการ
  • mapserver geoserver

หน้าเว็บ

ในตัวอย่างฉันจะใช้กรณีที่แสดงครั้งสุดท้าย โดยทั่วไปจะมีไฟล์ดัชนีที่เปลี่ยนเส้นทางไปยังไฟล์ที่มีนามสกุล phtml และสิ่งนี้จะเพิ่มฟังก์ชันที่สร้างขึ้นบน php และแผนที่ โฟลเดอร์มีรูปภาพที่เชื่อมโยงจากเพจ

mapserver geoserver

ถ้าเราดูมัน phtml เป็นเพียงเชลล์ที่สร้างขึ้นจากตารางและเรียกใช้ฟังก์ชัน mapscript / php คุณควรลุกขึ้นโดยใช้:

http://localhost/gis/gispalenque.phtml

ด้านล่างนี้เป็นผลลัพธ์:

  • ไปยังจุดศูนย์กลางของฟังก์ชั่น GMapDrawMap (),
  • ทางขวามือเรียก keymap GMapDrawKeyMap (),
  • แถบด้านล่าง GMapDrawScaleBar (),
  • และในกรณีของฟังก์ชันการปรับใช้เงื่อนไขเกี่ยวกับ listbox ถ้า (! IsHtmlMode ()) echo "  กับการตัดสินใจ: ZOOM_IN, ZOOM_OUT, RECENTER, QUERY_POINT

ทำงานอยู่แล้วการใช้งานมีลักษณะดังนี้:

mapserver geoserver

ไฟล์. map

การรวมกันของสิ่งพิมพ์ของ Mapserver คือสิ่งที่ Apache เพิ่มขึ้นซึ่งจะส่งผ่าน PHP MAPscript แล้วมันก็ออกมาจากเปลือกนั้น แต่วิทยาศาสตร์ส่วนใหญ่อยู่ในไฟล์. map เพื่อไม่ให้สับสนกับไฟล์ที่สร้างโดย Mapinfo, Manifold หรือ Mobile Mapper Office ที่มีนามสกุลเดียวกัน

. map เหล่านี้เป็นไฟล์ข้อความซึ่งมีแผนที่ในรูปแบบสคริปต์ สิ่งเหล่านี้สามารถสร้างได้ด้วยโปรแกรมเดสก์ท็อปเช่น Quantum GIS หากคุณดูว่ามีหนึ่งรายการสำหรับแผนที่หลักหนึ่งรายการสำหรับ Keymap และอีกสองรายการสำหรับบริการ OGC wms และ wfs มาดูกันว่า mapscript ทำงานอย่างไร:

แผนที่

NAME PALENQUE_DEMO
STATUS ON
ขนาด 600 450
SYMBOLSET ../etc/symbols.txt
EXTENT 604299 1933386 610503 1939300 # รายการแผนที่ทั้งหมดของ PALENQUE
#EXTENT 605786 1935102 608000 1938800 #SOLO ภาค 01
UNITS METERS
SHAPEPATH "../data"
ตรวจสอบความถูกต้อง
IMAGECOLOR 255 255 255
FONTSET ../etc/fonts.txt

  • MAP ระบุว่าเป็นสคริปต์เริ่มต้น
  • STATUS ระบุว่าแผนที่เริ่มต้นเปิดอยู่หรือไม่
  • ขนาดคือขนาดของจอแสดงผล
  • SYMBOLSET แสดงเส้นทางของสัญลักษณ์
  • EXTENT คือพิกัดที่แสดง สัญลักษณ์ # ใช้เพื่อสร้างคำอธิบายประกอบ
  • UNITS สำหรับหน่วย
  • SHAPEPATH เส้นทางที่มีเลเยอร์
  • ทุกอย่างที่ท้ายจะลงท้ายด้วยคำสั่ง END

ภายในรหัสเริ่มต้นด้วยบรรทัดคำสั่งและลงท้ายด้วย END ตัวอย่างเช่นสำหรับระดับต่ำสุดและสูงสุด ไดเรกทอรีของภาพชั่วคราว:

เว็บ
  MINSCALE 2000000
  MAXSCALE 50000000

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

mapserver geoserverแถบสเกล:

Scalebar
  IMAGECOLOR 255 255 255
  LABEL
    COLOR 0 0 0
    ขนาดเล็ก
  END
  ขนาด 300 5
  COLOR 255 255 255
  BACKGROUNDCOLOR 0 0 0
  OUTLINECOLOR 0 0 0
  UNITS กิโลเมตร
  INTERVALS 3
  STATUS ON
END

mapserver geoserverเลเยอร์แรสเตอร์: ที่อยู่ในพื้นหลังพร้อมคำอธิบายในรายการเป็น "Orthophoto" จาก tiff ที่อยู่ในโฟลเดอร์ข้อมูล:

 

 

ชั้น
  NAME orthophoto
  เมตา
    "DESCRIPTION" "OrtoFoto"
  END
  ประเภท RASTER
  STATUS OFF
  ข้อมูล "C: \ OSGeo4W / apps / gis / data / ortofotoGral.tif"
  #OFFSITE 0 0 0
END

ชั้นบรา tematizada รูปหลายเหลี่ยมตามเกณฑ์การเพิ่มข้อมูลบางอย่างเกี่ยวกับแม่แบบ HTML ที่มีตัวอักษรซองฉลากขนาด 6 ขอบสีดำและสีขาว buffer 5 ...

mapserver geoserver

ชั้น
  NAME เซ็ก XX02Zone
  TYPE POLYGON
  STATUS OFF
  ความโปร่งใส 50
  EXTENT 607852 1935706 610804 1938807 ข้อมูลเมตาดาต้า
    "DESCRIPTION" "Theme by Value Sector 02"
    "RESULT_FIELDS" "MsLink Cve_Mz Cve_Pred พื้นที่รอบ Perimeter VALUE"
  END
  DATA PALENQUE_SECTOR01
  TEMPLATE "ttt_query.html"
  TOLERANCE 5
  #TELERANCEUNITS PIXELS
  LABELITEM "VALOR"
  CLASSITEM "VALOR"
  LABELCACHE ON
  ชั้น
    SYMBOL 1
    COLOR 128 128 128
    OUTLINECOLOR 0 0 0
    NAME "ZonaNULL"
    EXPRESSION ([VALUE] = 0)
    LABEL
         ANGLE AUTO
         COLOR 0 0 0
         FONT sans
         TYPE TRUETYPE
         ตำแหน่ง cc
        
PARTIALS FALSE
         BUFFER 5
         6 ขนาด
         OUTLINECOLOR 200 200 200
    END
  END #class 0 value
  ชั้น
    SYMBOL 3
    COLOR 255 128 128
    #COLOR -1 -1 -1 #SIN FILLING

.... และอื่น ๆ เพื่อปิดด้วย

END
  END #Class Value
END # เลเยอร์

เพื่อสรุป

ดังนั้นการทำงานกับ mapserver แม้ว่าจะค่อนข้างง่าย แต่ก็มีความซับซ้อนและมีข้อ จำกัด มากสำหรับงานขนาดใหญ่เพราะทุกอย่างอยู่ใน. map ข้อเสียที่ใหญ่ที่สุดคือทุกอย่างทำได้ด้วยการเดินเท้าเช่นการกำหนดสีแต่ละสีในธีมและด้วยเหตุนี้เครื่องมือเช่น CartoWeb จึงเกิดขึ้นซึ่งทำงานบน Mapserver แต่นำปลั๊กอินและตัวอย่างในตัวพร้อมคุณสมบัติที่ทำให้เวอร์ชันดั้งเดิมนี้ดูเหมือน ที่ readme ก่อน:

  • ทำงานแยกเฟรมด้วย AJAX เพื่อรีเฟรชแยกต่างหาก
  • แยกวิเคราะห์โค้ดตราบเท่าที่สคริปต์เขียนใหม่ .map ตามเกณฑ์ parametrizable
  • เลื่อนกลับแบบไดนามิกโดยไม่ต้องรีเฟรชราวกับว่าเป็นชั้นแฟลช
  • การแก้ไขเวกเตอร์ออนไลน์เขียนแคชทันที
  • ดาวน์โหลดเลเยอร์ในรูปแบบเวกเตอร์
  • ส่งออกไปยัง Google Earth
  • สร้าง PDF จากการปรับใช้

ต่อไปเราจะมาดู CartoWeb ที่นี่ฉันจะทิ้งลิงค์ไปยังตัวอย่างหลัก

กอลจิ อัลวาเรซ

นักเขียน นักวิจัย ผู้เชี่ยวชาญด้านรูปแบบการจัดการที่ดิน เขาได้มีส่วนร่วมในการกำหนดแนวคิดและการนำแบบจำลองไปใช้ เช่น ระบบการบริหารทรัพย์สินแห่งชาติ SINAP ในฮอนดูรัส รูปแบบการจัดการเทศบาลร่วมในฮอนดูรัส รูปแบบบูรณาการของการจัดการที่ดิน - สำนักทะเบียนในนิการากัว ระบบการบริหารของดินแดน SAT ในโคลอมเบีย . บรรณาธิการของบล็อกความรู้ Geofumadas ตั้งแต่ปี 2007 และผู้สร้าง AulaGEO Academy ที่มีหลักสูตรมากกว่า 100 หลักสูตรเกี่ยวกับ GIS - CAD - BIM - Digital Twins

บทความที่เกี่ยวข้อง

3 คอมเมนต์

  1. สวัสดี

    ฉันกำลังพยายามเรียกเลเยอร์จาก. map ดังต่อไปนี้

    ชั้น
    NAME test_houses
    TYPE POINT
    CONNECTIONTYPE OGR
    การเชื่อมต่อ #”virtual.ovf”
    "

    xxxxx
    เอ็กเซ็ค …….
    eess_id
    wkbPoint
    WGS84

    "

    ปัญหาของฉันคือบริการ DSN ทำให้เกิดปัญหา: เมื่อขอ GetCapabilities มันกำลังส่งคืนรหัสผ่านฐานข้อมูล... ฉันสามารถโทรไปยังไฟล์เพื่อหลีกเลี่ยงการ "แจก" รหัสผ่านหรือเป็นข้อผิดพลาด DSN ได้หรือไม่ ขอบคุณ!

  2. MapServer เป็นโครงการโอเพ่นซอร์สที่ได้รับความนิยมโดยมีวัตถุประสงค์เพื่อแสดงแผนที่เชิงพื้นที่แบบไดนามิกผ่านทางอินเทอร์เน็ต ไดรฟ์ที่เมาท์คือไดรฟ์ที่แมปไปยังโฟลเดอร์ที่ว่างบนไดรฟ์ข้อมูลที่ใช้ระบบไฟล์ NTFS ไดรฟ์ที่ติดตั้งทำงานเป็นไดรฟ์อื่น ๆ แต่ไดรฟ์เหล่านี้จะกำหนดเส้นทางไดรฟ์แทนตัวอักษรของไดรฟ์

แสดงความคิดเห็น

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

กลับไปด้านบนปุ่ม