บทความ

กำลังแสดงโพสต์ที่มีป้ายกำกับ MapServer

การตัดภาพสำหรับแผนที่ล่วงหน้า

รูปภาพ
ในปัจจุบันในการแสดงภาพแผนที่นั้น จะเป็นการแสดงโดยการดึงรูปภาพมาแสดงแทนที่จะใช้ให้ server ทำการประมวลผลภาพแผนที่โดยการดึงข้อมูลที่เป็น vector มาแสดงโดยในบทความนี้จะกล่าวถึงโปรแกรมที่เป็นการตัดภาพล่วงหน้า โดยใช้โปรแกรมชื่อ Ka-Map ซึ่งสามารถ download ได้ที่ www.maptool.org ซึ่งเมื่อได้โปรแกรมมาแล้วสามารถนำไปวางไว้ใน MS4W (MapServer for Windows) ได้เลย เมื่อวางแล้วจะต้องทำการแก้ไข configuration ของโปรแกรม โดยไฟล์ configuration จะอยู่ที่ include/config.php ซึ่งสิ่งที่เราต้องแก้ไขคื่อ ส่วนของ mapfile ที่อ้างอิง ในตัวแปร $aszGMap โดยในสว่นของ path จะต้องกำหนดตามตำแหน่งของ mapfile ที่ต้องการ และในส่วนของ scales ก็ต้องกำหนด โดยการกำหนดนั้น ถ้าเราต้องการนำภาพที่ได้ไปทำการซ้อนทับกับภาพแผนที่ของ google จำเป็นต้องกำหนด scales ตามมาตรฐานที่กำหนดไว้ โดยมาตรส่วนที่ใช้ตามมาตรฐานมีดังนี้ 443744272.7241,221872136.3621,110936068.181,55468034.0905,27734017.0453, 13867008.5226,6933504.2613,3466752.1307,1733376.0653,866688.0327,433344.0163, 216672.0082,108336.0041,54168.002,27084.001,13542.0005,6771.0003,3...

การพิมพ์ภาพแผนที่ผ่าน MapServer แบบสวยงาม

ใน version เก่าๆของ mapserver การพิมพ์เมื่อเราส่งไปพิมพ์ที่เครื่องพิมพ์ภาพที่ได้อาจจะไม่ค่อยสวย คือ ภาพจะแตก ซึ่งถ้ายิ่งพิมพ์ขนาดกระดาษที่ใหญ่ก็ยิ่งแตกไปกันใหญ่ ใน version mapserver ตั้งแต่ version 5.6 นั้นได้เพิ่มความสามารถในการพิมพ์ภาพแผนที่ โดยเราสามารถกำหนดการพิมพ์ให้สวยงามได้ โดยถ้าต้องการพิมพ์ภาพขนาด เท่า A4 ก็จะต้องทำการคำนวณขนาดของภาพที่ให้ mapserve ทำการสร้างให้ใหญ่กว่า 4 เท่าโดยประมาณ แล้วเมื่อเวลาพิมพ์ก็กำหนดขนาดเท่ากับ A4 ที่ต้องการ ก็จะได้ภาพที่มีความละเอียดในการพิมพ์ออกทางเครื่องพิมพ์ โดยจะต้องกำหนดใน mapfile เช่น RESOLUTION 300 SIZE 1667 1250 MAXSIZE 6144 ซึ่งตรง SIZE จะต้องคำนวณโดยการนำค่า 4.1667 ไปคูณ เช่น ถ้าต้องการภาพขนาด 400*300 จะได้ 400 * 4.1667 = 1666.68 300 * 4.1667 = 1250.01 ซึ่งส่วนของ MAXSIZE ก็จำเป็นถ้าขนาดที่คำนวณได้มากกว่า 6144 ก็จะต้องเปลี่ยนขนาดของ Maxsize ด้วย โดยเราอาจจะใช้ php ในการไปกำหนดเวลาพิมพ์ก็ได้โดยใช้ php_mapscript ช่วย หรือถ้าขนาดของเราที่ต้องการพิมพ์กำหนดแน่นอนไม่เปลี่ยนแปลงก็กำหนดใน mapfile เลยก็ย่อมได้