mapserver WxS

SWIG Mapscript vs PHP Mapscript

Posted by admin on June 25, 2009 in mapserver, mapserver WxS, php, python

เคยแต่ใช้ PHP Mapscript มาสะนาน คราวนี้มาลองใช้ SWIG Mapscript ดูบ้าง ก็เลยลองกลับ Python 2.6
มาเปรียบเทียนกันเลยละกัน Code ที่แสดงเป็นการเปลี่่ยนค่า PROCESSING ของ RASTER layer แล้วทำการ QueryByPoint โดยใน PHP เจอปัญหาสามารถกำหนดค่า BANDS ได้เพียง 5 bands แต่ใน python ในนั้นไม่มีปัญหา รวมถึงหากกำหนดใน mapfile เช่นกันคาดว่าจะเป็นในเรื่องของ ขนาด shape result ที่ใหญ่เกินกว่าที่กำหนดไว้
เท่าที่ลองใช้ python mapscript ก็ใช้งานได้ดี โดยเฉพาะในแบบ interactive ทำให้ง่ายต่อการ debug
Python Code

import mapscriptomap=mapscript.mapObj(”test.map”)

olayer=omap.getLayerByName(”testdata”)

olayer.status=mapscript.MS_ON

olayer.clearProcessing()

olayer.setProcessingKey(”BANDS”,”1,2,3,4″)

queryPoint = mapscript.pointObj(-179.5,89.5)

olayer.queryByPoint(omap,queryPoint,mapscript.MS_SINGLE,-1)

olayer.open()

for i in range(olayer.getNumResults()):

result=olayer.getResult(i)

s=olayer.getFeature(result.shapeindex)

for i in range(olayer.numitems):

print “%s: %s” [...]

WMS and WCS Time

Posted by admin on June 3, 2009 in mapserver, mapserver WxS, wcs, wms

รับรู้มาตั้งนานแล้วว่า Mapserver support WMS และ WCS Time
เช่นในกรณี MODIS data set ซึ่งจะมีภาพทุก ๆ วัน ก็จะเป็นประโยชน์มากวิธีการทำก็มีใน
http://mapserver.org/ogc/wms_time.html และ http://mapserver.org/ogc/wcs_server.html#wcs-server
มาสรุปสั้น ๆ ให้ได้ใจความ
ก่อนอื่นทำความเข้าใจก่อนว่า 1 ไฟล์ภาพ คือ ข้อมูล หนึ่งวัน หรือหนึ่งเวลา อาจจะมีหลาย band ก็ได้
ขั้นที่ 1 ก็ทำการสร้าง index file ด้วยคำสั่ง
-gdaltindex inde.shp image/*.tif
ก็จะได้ไฟล์ index มาซึ่งจะมี colume “location”  ที่มี path และ filename อยู่
ก็ทำการสร้าง colume เพิ่มมาใหม่ด้วย โปรแกรม GIS เช่น Mapwindos, Qgis etc.. ตั่งชื่ออะไรก็ได้ ให้ข้อมูลเป็นชนิด Text
จากนั้นอาจจะต้องหาวิธีใส่ข้อมูลวันที่เข้าไป ในแต่ละ [...]

WxS Mapscript non-work on NON-CGI environment

Posted by admin on November 13, 2007 in mapserver WxS

หลังจากปวดหัว ตั้งแต่เช้า ว่าอยู่ดี ๆ ทำไม script เก่า มันใช้งานไม่ได้ฟะ ในที่สุดก็ค้นพบว่า mandriva 2008 ที่ลงไปนั้นยังไม่ได้ปรับแก้ให้ ใช้ php ใน แบบ cgi ไม่ใช่แบบ mod_phpเพราะจะมีผลกับคำสั่งบางอย่างของ php-mapscript เช่น WxS Mapscriptพอสร้าง object $request = ms_newowsrequestobj(); มันก็เงียบไป แล้วไม่มี error ใด ๆ ทั้งสิ้น ทั้งทางหน้าจอและใน logบางอ่านบอกให้ทำการ parse จาก request url แล้วใส่เข้าไปด้วยวิธี$request = ms_newOwsRequestObj();foreach ($_GET as $k=>$v) { $request->setParameter($k, $v);}ก่อน $request->loadparams(); แต่สำหรับเราลองแล้วยังงัยก็ไม่สำเร็จ ก็ไม่เข้าใจก็เลยปรับเปลี่ยนไปใช้ [...]