วันอังคารที่ 29 เมษายน พ.ศ. 2557

สร้างแผนที่ออนไลน์ (Webmap) ง่ายๆ ด้วย qgis2leaf

______เมื่อก่อนนั้นการที่จะสร้างแผนที่ออน์ไลน์(Webmap)นั้นเป็นเรื่องที่ยากมากๆ สำหรับคนที่ไม่มีพื้นฐานทางด้านการเขียนโปรแกรม แต่ปัจจุบันนี้ได้มีเครื่องมือหลายๆอย่างที่อำนวยความสะดวกในการที่จะสร้างแผนที่ออน์ไลน์ให้เรานั้นง่ายมากๆ ครับ ผมขอยกตัวอย่างแค่ของ QGIS ตัวเดียวล่ะกันมีปลั๊กอยู่ตัวนึงชื่อว่า "qgis2leaf" เป็นปลั๊กอินที่ดีสำหรับการสร้างแผนที่ออน์ไลน์(WebMap) ทีมพัฒนาคือ "Riccardo Klinger, Geolicious" ทำให้เราสามารถสร้างแผนที่ออน์ไลน์ได้ภายในไม่ถึง 5 นาที ก็ถือว่าสะดวกและก็ง่ายสำหรับมือใหม่ที่หัดทำ

Leaflet นั้นเป็น JavaScript library สำหรับสร้างแผนที่ออน์ไลน์ และเป็น Open-Source JavaScript Library for Mobile-Friendly Interactive Maps ซึ่งออกแบบมาให้ดูดี เรียบง่าย และมีประสิทธิภาพในการใช้งานทั้งใน desktop และ mobile platforms โดยอาศัย HTML5 และ CSS3 ก่อนหน้านี้ก็จะมี OpenLayers ก็ถือว่าเป็นอีกตัวนึงที่นิยมใช้กันมาก ท่านไหนที่สนใจก็ลองเข้าไปอ่าน API ดูครับ http://leafletjs.com

1. ก่อนเราต้องติดตั้งปลํ้กอิน qgis2leaf

2. เลือกชั้นข้อมูลที่ต้องการแสดงผลบนเว็บ

3.ไปที่เมนู Web > qgis2leaf > Export a QGIS Project to a working leaflet webmap เพื่อทำการสร้างแผนที่ออนไลน์

4. เราสามารถกำหนดขนาดของ frame ได้ สามารถเลือก basemap ได้ จากนั้นก็เลือก output เพื่อเก็บไฟล์ แล้วคลิก OK

5. ไฟล์ที่เราได้ หลังจากที่ปลั๊กอินนี้สร้างให้

6. ผลที่ได้ ดังภาพ http://www2.cgistln.nu.ac.th/chai/leafletjs/nu/index.html


https://plugins.qgis.org/plugins/qgis2leaf/

วันจันทร์ที่ 28 เมษายน พ.ศ. 2557

เปิดข้อมูล GIS จาก ESRI File Geodatabase (*.gdb) โดยใช้โปรแกรม QGIS

1. ลักษณะของ Geodatabase ที่เปิดด้วย ArcCatalog

2. เปิดโปรแกรม QGIS แล้วไปที่เมนู Layer > Add Vector Layer...
- กำหนด Source type เป็น Directory
- กำหนด Type เป็น ESRI FileGDB

3. คลิกปุ่ม Browse เพื่อเลือกตำแหน่งไฟล์ Geodatabase

4. เมื่อเปิดได้แล้วก็จะเห็นว่ามีหลายๆ ชั้นข้อมูล อันนี้ขึ้นอยู่ที่เราเองว่าจะเปิดทั้งหมดหรือเลือกบางชั้นข้อมูล

5. ผลที่ได้จากการเปิด ESRI File Geodatabase

6. เปิดข้อมูลตารางดูว่า สามารถรองรับภาษาไทยได้ด้วย

chingchai byfamous

วันเสาร์ที่ 26 เมษายน พ.ศ. 2557

การเรียกชั้นข้อมูล WMS (Web Map Service) จาก UMN MapServer

_______ผมเคยเขียนการเรียกใช้ชั้นข้อมูล WMS ที่อยู่ใน GeoServer มาก่อนหน้านี้แล้วครับ แต่วันนี้จะขอเสนอวิธีการเรียก WMS จาก MapServer ดูบ้างครับ ว่าจะมีวิธีการเหมือนกันหรือป่าว เรามาลองดูกันดีกว่าครับ

1. เราต้องหา Web Service ซักที่หนึ่งก่อน แต่ต้องทราบว่าเค้าใช้ UMN MapServer น่ะครับ หรือไม่ก็จำลองเอาเองก็ได้ ในตัวอย่างของผมจะขอใช้ Service จาก DSI MAP ล่ะกันครับ ซึ่งหลายๆ ท่านน่าจะทราบกันดีว่า DSI MAP ได้รับรางวัลนวัตกรรมยอดเยี่ยมมากมาย http://dsi-map.go.th

2. เปิดโปรแกรม QGIS ขึ้นมา แล้วไปที่เมนู Layer > Add WMS/WMTS Layer...

3. จากนั้นจะมีหน้าต่าง Add WMS ปรากฏขึ้นมา ให้คลิกที่ปุ่ม New แล้วก็ให้ใส่ Name: เป็นชื่ออะไรก็ได้ (ให้ดีก็เป็นชื่อเจ้าของ Service เช่น DSI MAP) จากนั้นให้ใส่ URL ของ Service(http://dsi-map.go.th/cgi-bin/mapserv?map=/ms603/map/wms-dsi.map) นั้นลงไปและคลิกปุ่ม OK ดังภาพ

4.ให้คลิกปุ่ม Connect เพื่อเชื่อมต่อกับข้อมูล จากนั้นก็ให้เราเลือกชั้นข้อมูลที่ต้องการแสดง แล้วคลิกที่ปุ่ม Add ดังภาพ

5.ผลลัพธ์ที่ได้ ดังภาพ

6. สามารถเพิ่มหลายชั้นข้อมูล เพื่อซ้อนทับกันได้

ขอบคุณ: example web map service by http://dsi-map.go.th

วันพฤหัสบดีที่ 24 เมษายน พ.ศ. 2557

แปลงไฟล์โปรเจ็คต์ของ ArcGIS (*.mxd) ให้เป็นโปรเจ็คต์ของ QGIS (*.qgs)

______ผมเคยลองนั่งคิดเล่นดูว่า ถ้าเราทำงานหรือวิเคราะห์อะไรบางอย่างไว้ที่ ArcGIS Desktop แต่อยากที่จะนำมาเปิดด้วยโปรแกรม QGIS โดยที่ไม่ต้องเสียเวลามา Add Layers ใหม่ทุกๆ ครั้ง เราจะทำอย่างไรดี เลยถามเพื่อนในกลุ่มก็เลยได้ Toolbox มาตัวนึง ซึ่งสร้างโดย Allan Maungu เราลองมาดุขั้นตอนกันดีกว่าครับ

1. Download Toolbox Click

2. ทำการแตกไฟล์ และก็ติดตั้ง PyXML-0.8.4.win32-py2.6.exe

3. เปิด ArcMap ขึ้นมา แล้วไปที่ Geoprocessing > ArcToolbox ให้คลิกขวา Add Toolbox

4. Browse ไปหา ArcToolbox ที่เราเก็บไว้ Z_ArcMap to Qgs.tbx

5. คลิกขวาที่ ArcMap to Quantum GIS > Properties...

6. ไปที่แถบเมนู Source แล้ว Browse เลือกไฟล์ mxd2qgs.py

7. จากนั้นเราก็เปิดโปรเจ็คต์ของ ArcMap ที่เราได้ทำการ Save ไว้ก่อนหน้านี้ขึ้นมา

8. เริ่มทำการแปลงไฟล์โปรเจ็คต์ ArcMap โดยทำการเลือกที่เก็บของโปรเจ็คต์ QGIS ดังภาพ

9. เมื่อคลิกปุ่ม OK แล้วเราก็จะได้ไฟล์โปรเจคต์ของ QGIS เพิ่มขึ้นมาดังภาพ

10. ผลลัพธ์ที่ได้ เสร็จแล้ว

11. ถ้าท่านไหนที่มีต่างแบบนี้ปรากฏขึ้นมาไม่ต้องตกใจครับ พอที่ผู้ที่เขียน Toolbox เค้าเขียนรองรับ ArcMap 10, Python 2.6.5 and Quantum GIS 1.6.0 แต่ถ้าท่านไหนที่ใช้ QGIS 2 ก็สามารถเปิดได้ครับ แต่ก็หน้าแบบนี้แสดงตลอด ถ้ารำคาญก็ให้ไปเปลี่ยน Code ที่บรรทัด 49  qgis.setAttribute("version", "1.6.0-Capiapo")เป็น qgis.setAttribute("version", "2.0.1-Dufour") ก็ได้แล้วครับ


ปล.แต่ถ้าท่านไหนใช้ python27 ก็ต้องหา lib PyXML-0.8.4.win32-py2.7.exe น่ะครับ

วันอังคารที่ 22 เมษายน พ.ศ. 2557

สร้างโมเดล 3 มิติ จาก QGIS โดยใช้ปลั๊กอิน Qgis2Threejs

_______จากเว็บไซต์ของคุณ Anita Graser หนึ่งใน Contributes ของ QGIS ซึ่งเค้าได้สร้างโมเดล 3 มิติขึ้นมา โดยใช้ปลั๊กอิน Qgis2Threejs หลายท่านลองนำไปใช้ดูน่ะครับ โดยโมเดลนี้จะแสดงผลออกมาโดยใช้ Web Browser หรือที่เรียกว่าเทคโนโลยีนี้ว่า "WebGL" เพื่อแสดงภาพกราฟิก 3 มิติ สำหรับเว็บเบราว์เซอร์โดยไม่จำเป็นต้องติดตั้งปลักอินส์เพิ่มครับ (อ้างอิงจากWikipedia) ถ้าสนใจอยากลองทำดูบ้างก็ต้องติดตั้งปลักอิน Qgis2Threejs ก่อนน่ะครับ แล้วจากนั้นก็เริ่มทำได้เลยจากเว็บไซต์ Click

ภาพตัวอย่างของผมครับ
คลิกดูเว็บไซต์ http://www2.cgistln.nu.ac.th/chai/3d/nu3d.html

อ้างอิงจาก: http://anitagraser.com/2014/03/15/3d-viz-with-qgis-three-js/

วันศุกร์ที่ 11 เมษายน พ.ศ. 2557

QGIS Save As Layer Definitions

________ห่างหายไปนานครับ ช่วงนี้ไม่ค่อยมีเวลาอัพเดพ blog สักเท่าไหร่นัก วันนี้พอมีเวลาบ้างก็เลยจะมาลองทำวิธี save layer definition ถ้าเป็นทางด้าน arcgis ก็จะเรียกว่า Save as layer file (*.lyr) ซึ่งการใช้เครื่องมือนี้ข้อดีก็คือว่า เวลาเราปรับแต่งคุณสมบัติของข้อมูลในรูปแบบต่าง ถ้าเราเปิดขึ้นมาก็จะปรากฏในรูปแบบที่เรากำหนดไว้เหมือนเดิมนั่นเองครับ ซึ่งการเก็บข้อมูลนี้ก็จะอยู่ในรูปแบบของ xml โดยมีนามสกุลเป็น *qlr ครับ

1. เมื่อปรับแต่งคุณสมบัติเรียบร้อยแล้ว ก็คลิกขวาที่ชั้นข้อมูล Save As Layer Definitions File...

2. จากนั้นก็เลือกที่เก็บ

3. ไปที่เมนู Layer > Add from Layer Definitions File...

4. เปิดไฟล์ *.qlr

5. ผลลัพธ์ที่ได้