Coordinate Systems and Axis Orientation ใน WMS 1.3.0

Standard

ก็ได้กล่าวไปบ้างแล้วสำหรับ การเปลี่ยนแปลงของ ระบบอ้างอิง x,y ใน WMS 1.3.0

ก็มาพูดถึงโดยละเอียดอีกทีว่าเป็นอย่างไร

  • โดยทั่วไปใน WMS 1.xx ส่วนใหญ่ทุกคนจะใช้ EPSG:4326 สำหรับ WGS84 lon/lat ในลักษณะนี้กันBBOX=-180.0,-90.0,180.0,90.0&…
  • แต่ใน WMS 1.3.0 นั้น EPSG:4326 เปลี่ยนแปลงไปเป็น WGS84 lat/lon โดยกำหนดพิกัดแบบ &BBOX=-90.0,-180.0,90,180.0

นั้นจึงเป็นปัญหาที่พบกันอยู่ซึ่งส่วนใหญ่เท่าที่เจอคือ EPSG ที่ใช้พิกัดแบบ longitude latitude  ส่วนใหญ่ใน WMS 1.3.0 จะเปลี่ยนเป็นแบบ lat/lon

  • แต่ใน WMS1.3.0 ก็ได้กำหนดระบบอ้างอิงมาเป็น CRS:84 ซึ่งจริง ๆ แล้วก็คือ EPSG:4326 ใน WMS 1.x.x เพราะเป็นระบบพิกัดแบบ WGS84 lon/lat นั้นเอง

แต่ก็ไม่มั่นใจว่า ระบบ EPSG ทั้งหมดจะเปลี่ยนจาก lon/lat  เป็น lat/lon ทั้งหมดหรือไม่ก็ต้องหาข้อมูลเพิ่มเติมอีกครั้งนึง

WMS 1.3.0 กับ OpenLayers

Standard

มากันอีกแล้วกับ version ใหม่ สิ่งสำคัญในการเปลี่ยนแปลงครั้งนี้คือ

  • ระบบ North-South , East-West
  • แล้วก็ จาก SRS มาเป็น CRS

ระบบใหม่นั้นจะให้ การอ้างอิง Axis เป็นไปตามค่าที่ระบุใน GetCapabilities  ดังนั้นจะใช้อย่างไรก็ต้องทำการศึกษาให้ดี รายละเอียดเพิ่มเติมก็ลองดูจาก http://mapserver.org/ogc/wms_server.html#wms-1-3-0-support

ตัวอย่าง website ภาพถ่ายทางอากาศของญี่ปุ่นที่ support WMS 1.3.0 เท่านั้น

http://orthophoto.mlit.go.jp:8888/wms/service/wmsRasterTileMap?VERSION=1.3.0&REQUEST=GetCapabilities&Service=WMS

แล้วเราจะใช้ WMS 1.3.0 กับ OpenLayers ได้ไหม คำตอบก็คือได้ แต่ไม่สมบูรณ์ เพราะได้รับการยืนยันจาก Chris Schmidt ว่าไม่รับรองการรองรับกับ WMS 1.3.0

แต่ต้องทำการตั้งค่า option ของ layers สะนิดหน่อยให้ใช้  Version 1.3.0 และ CRS

layer = new OpenLayers.Layer.WMS(“MLIT photo”, “http://orthophoto.mlit.go.jp:8888/wms/service/wmsRasterTileMap”,

{layers:”ORTHO”,

CRS:”EPSG:4612″,

VERSION:”1.3.0″

} );

แต่ก็ไม่คิดว่าน่าจะใช่วิธีที่ถูกต้อง เพราะใน URL ที่ส่งไปก็ยังมี SRS อยู่ด้วยต้องทำการหาวิธีที่ถูกต้องต่อไป

เท่าที่ใช้ดูเวลา zoom เข้าไปบางทีก็มีปัญหา แล้วก็ cache บางทีก็ต่อกลับหัวกลับข้าง คาดว่าคงเป็นปัญหาด้าน lon/lat และ lat/lon

ก็อาจจะต้องทำการแก้ไขสร้าง Layer Class ขึ้นมาใหม่ให้สำหรับ wms 1.3.0 โดยการจำลองจาก Layer WMS เดิมแล้วก็ทำการสลับค่า coordinate สะ

WMS and WCS Time

Standard

รับรู้มาตั้งนานแล้วว่า 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

จากนั้นอาจจะต้องหาวิธีใส่ข้อมูลวันที่เข้าไป ในแต่ละ records.

เสร็จไปขั้นแรก

2. ก็มาสร้าง map file โดยทำการสร้าง layer สำหรับ tile index ซึ่งก็เป็นแบบทั่วไปของ Polygon SHP

3. ทำการสร้าง Layer สำหรับภาพ Modis โดยมีข้อมูลที่สำคัญตามนี้

Layer

NAME modisa ชื่อข้อมูล

Projection

“init=epsg:4326″

End

TYPE RASTER

DUMP True

TILEINDEX “location” ชื่อ colume ที่มี path และ filename

TILEINDEX “time_idx” ชื่อ layer ของ tileindex

METADATA

“wms_timextent” “2008-09-01/2008-09-05 จากวันที่ 1 ถึง 5

“wms_timeitem” “dtime” ชื่อ colume ใน shp ที่มีข้อมูลวันที่

“wms_timedefault” “2008-09-01″

…… และอื่นที่ ๆจำเป็นสำหรับ wms implementation

“wcs_timeitem” “dtime”

“wcs_timeposition” “2008-09-01/2008-09-05″

……

END

เป็นที่น่าสังเกตว่า

wcs_timeextent สามารถกำหนดเป็น แบบ range ได้ หลังจาก Mapserver version 5.4.1

WMS Client Example

Standard

วันนี้ก็จะมาลุยเรื่อง WMS Client กันหน่อย จริง ๆ ต้องการทำ WPS แต่ยังไม่เคยเขียนเองเลยต้องมาเริ่มนับหนึ่งกันสะหน่อยนะครับ

ก็มีหลาย ๆ อันที่ดูดีใช้ได้ ลองรวบรวมมาไว้บ้างแล้วกัน เริ่มจากอันง่ายสุด

1.QuickWMS มี js มาให้เรียบร้อย แต่ทำได้เพียง ระบุ Layers ที่จะดึงมา ไม่มีการ GetCapabilities

2. WMS Java Script Library ก็ยังเป็น js อยู่ดี ใช้งานง่าย

3.OpenLayers ก็ยังคงคล้ายกับตัวอย่างข้างบน แต่มี Mouse Event ที่น่าสนใจ (คนพัฒนายังเด็กอยุ่เลย)

4. msCross เป็น AJAX Web GIS Client ที่มี library ที่สามารถดึงมาใช้งานได้อย่างน่าสนใจ

powered by performancing firefox