สร้างเว็บแผนที่ออนไลน์แบบ timeseries ด้วย GeoServer และ OpenLayers
สวัสดีครับวันนี้ผมได้ลองศึกษาเกี่ยวกับการนำเอาข้อมูลภาพจากดาวเทียมหลายๆช่วงเวลามาแสดงเป็นแบบ timeseries โดยใช้ GeoServer กับ OpenLayers ซึ่งผมก็ไปเจอหลายๆ ตัวอย่างที่ได้แชร์เยอะมากๆ เลยครับ วันนี้ผมเลยลองเขียนวิธีและขั้นตอนการทำว่ามีขั้นตอนอย่างไรบ้าง ไปดูกันเลยครับ
สามารถเข้าไปดูตัวอย่าง Code
https://codepen.io/chingchaih/pen/eYzpBve
อันดับแรกเลยที่เราต้องมีก็คือ
- ข้อมูลจากดาวเทียมหลายๆ ช่วงเวลา
- GeoServer ที่เอาไว้ใช้เพื่อให้บริการข้อมูลเชิงพื้นที่ในรูปแบบ WMS (Web Map Service) และ WFS (Web Feature Service)
- OpenLayers สำหรับเป็นส่วนติดต่อกับผู้ใช้งานสำหรับแผนที่แบบโต้ตอบ (สามารถใช้ Leafletjs แทนได้เหมือนกันนะ)
ขั้นตอนการทำงาน
1.เราจะต้องติดตั้งโปแกรม GeoServer ก่อนครับ ซึ่งก็มีวิธีการติดตั้งง่ายมากๆ ครับ สามารถค้นหาได้ทั้งใน Google และ Youtube ได้เลยครับ หรือถ้าอยากได้หนังสือ WEBGIS ที่เป็นแบบภาษาไทย สามารถติดต่อสั่งซื้อได้ที่ แมพพิเดีย ได้เลยครับ
2. ให้เราทำการ Login เข้า GeoServer ด้วย admin / geoserver
3. ไปที่เมนู Workspaces และคลิกที่ Add new Workspace
4. จากนั้นให้ตั้งชื่อเป็น timeseries และ Namespace URI ผมจะใช้ timeseries.mapedia.co.th แล้วคลิก Submit
5. จากนั้นไปที่เมนู Stores และคลิกที่ Add new Store
6. คลิกเลือกในส่วนของ Raster Data Sources โดยเลือกเป็นแบบ ImageMosaic
7. ทำการตั้งชื่อ Data Source Name เป็น timeseries และ Description เป็น timeseries
8. ให้เราไปที่โฟลเดอร์ C:\Program Files\GeoServer 2.16.0\data_dir\coverages\timeseries เพื่อเตรียมข้อมูลภาพของเราก่อนครับ สามารถดาวน์โหลดข้อมูลได้ที่ timeseries_20030517.tif , timeseries_20130201.tif , timeseries_20170803.tif
9. ทำการเพิ่มไฟล์คุณสมบัติบางอย่างเพื่อระบุวิธีแยกวันที่ออกจากชื่อไฟล์ข้อมูลภาพดาวเทียม เราสามารถใช้ไฟล์ต่อไปนี้และวางไว้ในโฟลเดอร์เดียวกัน: indexer.properties และ timeregex.properties ดังภาพด้านล่าง
10. จากนั้นให้เรามาที่ GeoSever และทำการ คลิก Browse.. ไปเลือกไฟล์ข้อมูลภาพดาวเทียมของเรา และคลิก OK ดังภาพ
11. จากนั้นให้คลิก Save
12. ให้คลิกที่ Publish เพื่อทำการเผยแพร่ข้อมูล
13. หลังจากนั้นให้เราคลิกที่แถบเมนู Dimensions และทำการตั้งค่าดังนี้ เสร็จแล้วให้คลิก Save
Time ให้ทำการติก Enable และเลือก Presentation เป็น List
14. จากนั้นเราทำการสร้างเว็บแผนที่ของเราขึ้นมา 1 ไฟล์ ตัวอย่างผมใช้ OpenLayers ในการ
15. จากนั้นให้เราลองรับเว็บที่เราสร้างขึ้นมาครับ
reference: https://www.earder.com/tutorials/timeseries-with-geoserver-and-openlayers/