ค้นหาและดาวน์โหลดข้อมูลจาก OpenStreetMap¶
Warning
This tutorial is now obsolete. A new and updated version is available at Searching and Downloading OpenStreetMap Data (QGIS3)
ในงานใดๆ ของ GIS การมีข้อมูลที่มีคุณภาพถือเป็นสิ่งจำเป็น ซึ่งแหล่งข้อมูลคุณภาพแห่งนึงซึ่งเปิดเผยและนำไปใช้ได้ฟรีคือข้อมูลจาก OpenStreetMap(OSM) ฐานข้อมูลของ OSM จะประกอบไปด้วย ถนน, ข้อมูลพื้นที่ เช่นเดียวกับข้อมูล polygon ของตึกต่างๆ ซึ่งการนำข้อมูลจาก OSM มาผนวกใช้ใน QGIS ในรูปแบบข้อมูล GIS ถือว่าน่าสนใจมาก ซึ่งบทนี้จะอธิบายขั้นตอนการ ค้นหา, ดาวน์โหลด และ ใช้ข้อมูลของ OSM ใน QGIS
ภาพรวมของงาน¶
ค้นหา London ในฐานข้อมูล OSM มองหาและเลือกบางส่วนของเมือง จากนั้นเอาข้อมูลของสถานที่ๆ เป็นร้านเหล้า ออกมาในรูปแบบของ shapefile
ขั้นตอนการทำงาน¶
เราจะใช้ plugin 2 ตัวในการทำงานี้ ตรงนี้ให้แน่ใจก่อนว่ามี plugin OSM Place Search และ OpenLayers ติดตั้งไว้แล้ว สามารถอ่านจาก การใช้งาน Plugin เพื่อดูวิธีดาวน์โหลดและติดตั้ง plugin

plugin OSM Place Search จะถูกติดตั้งเป็น Panel ใน QGIS ซึ่งคุณจะเห็นพาเนลใหม่ชื่อ OSM place search... ใน QGIS

ส่วน plugin OpenLayers จะถูกติดตั้งในเมนู Plugin ซึ่ง plugin นี้จะทำให้คุณเข้าถึง basemaps ได้จากหลายๆ provier ใน QGIS ต่อไปเราจะโหลดข้อมูล basemap OpenStreetMap ใน QGIS โดยไปที่เมนู

You will see a World map loaded in QGIS.
Note
ถ้าคุณไม่เห็นข้อมูลใดๆ - ให้ลองเช็คดูว่าคุณออนไลน์หรือยัง - เพราะ basemap จะถูกดึงมาจากอินเตอร์เน็ต คุณสามารถใช้เครื่อง Pan เพื่อเลื่อนแผนที่ ซึ่งจะทำให้ basemap อัพเดทการแสดงผล

ตอนนี้เรามาลองค้นหาเมือง London กัน โดยให้พิมพ์คำค้นที่กล่อง Name contains... ในพาเนล OSM Place Search เมื่อคุณนำเมาส์เลื่อนไปที่ผลลัพธ์ที่ได้จากการค้นหา คุณจะเห็นสถานที่ที่เลือกถูกทำไฮไลท์บนแผนที่ ให้เลือกผลลัพธ์แรก - ซึ่งคือเมืองลอนดอนในสหราชอาณาจักร - จากนั้น คลิกที่ปุ่ม Zoom

คุณจะเห็น base layer ถูกเคลื่อนมายังกึ่งกลาง ซึ่งเป็นพื้นที่รอบๆ เมืองลอนดอน คุณสามารถใช้เครื่องมือ Zoom เพื่อซูมและเลือกพื้นที่ๆ คุณสนใจได้ สำหรับบทนี้ เราจะซูมเข้าไปที่ใจกลางเมืองดังในรูป

ตอนนี้เราสามาถดาวน์โหลดข้อมูลที่แสดงผลอยู่ขณะนี้ได้แล้ว โดยไปที่เมนู

ในหน้าต่าง Download OpenStreetMap data ให้เลือก From map canvas as the Extent จากนั้นเลือกที่เก็บไฟล์โดยตั้งชื่อว่า
london.osm

The downloaded file with the
.osm
extension is an text file in the OSM XML format. We first need to convert it into a suitable format that is easy to consume in QGIS. Go to .
Note
ตอนนี้เราไม่ต้องใช้ OSM Place Search แล้ว สามารถคลิกปิดไปได้เลย แต่ถ้าคุณอยากใช้อีกครั้ง ก็สามารถเปิดใช้ได้จากเมนู
(วินโดวส์) หรือ (ลินุกซ์)
ในช่อง Input XML file ให้เลือกไฟล์
london.osm
ที่ดาวน์โหลดมา ส่วนช่อง Output SpatiaLite DB ใช้บันทึกเป็นไฟล์ ``london.osm.db` และให้แน่ใจว่าได้ติ๊กที่ช่อง Create connection (SpatiaLite) after import ไว้ด้วย

ขั้นตอนสุดท้าย เราต้องสร้าง SpatialLite geometry layer ซึ่งสามารถนำมาวิเคราะห์ใน QGIS ได้ ซึ่งสามารถทำได้โดยใช้เมนู

ไฟล์
london.osm.db
จะมีข้อมูลครบทุกประเภทในฐานข้อมูลของ OSM คือ จุด, เส้น และ Polygons ปกติแล้วชั้นข้อมูลของ GIS หนึ่งชั้น จะประกอบไปด้วยข้อมูลชนิดเดียว ตอนนี้คุณต้องเลือกมาสักชนิดหนึ่ง ซึ่งเรากำลังสนใจข้อมูลข้อมูลของตำแหน่งร้านเหล้า ตรงนี้เราต้องเลือก Point (nodes) เป็น Export type ถ้าคุณเลือก Polylines (open ways) คุณก็จะได้ข้อมูลถนน จากนั้นตั้งชื่อไฟล์ที่ช่อง Output layer name เป็นlondon_points
ข้อมูลใน GIS จะมี 2 ส่วนคือ พิกัดตำแหน่งและ attribute และเราสนใจ name หรือชื่อของร้านเหล้าด้วยเช่นกัน ซึ่งไม่ใช่เพียงเฉพาะพิกัดตำแหน่งเท่านั้นที่เราต้องการ เรายังต้องการชื่อของร้านเหล้าด้วยเช่นกัน คลิกที่ Load from DB ที่อยู่ในหมวด Exported tags จะเป็นการดึงข้อมูล attributes ทั้งหมดมาจากไฟล์london.osm.db
ให้ติ๊กเลือกที่ name และ amenity หากคุณอยากรู้เพิ่มเติมเกี่ยวกับความหมายของ attribute ต่างๆ สามารถดูได้ที่ OSM Tags ตอนนี้ให้แน่ใจว่าให้เลือกตัวเลือก Load into canvas when finished ไว้แล้ว จากนั้นคลิกที่ปุ่ม OK

คุณจะเห็นชั้นข้อมูลที่เป็นจุดชื่อ
london_points
ถูกโหลดลงใน QGIS ซึ่งข้อมูลที่เป็นจุดต่างๆ นี้ เป็นข้อมูลจุด ทั้งหมด ในฐานข้อมูล OSM แต่เราสนใจเฉพาะข้อมูลของร้านเหล้า เราจึงต้องเขียนตัวกรองข้อมูลเพื่อเลือกเฉพาะที่เราต้องการ โดยคลิกขวาที่ชั้นข้อมูลlondon_points
และเลือก Open Attribute Table

คุณจะเห็นได้ว่าในบางแถวข้อมูลจะมีค่าที่ชื่อ pubs อยู่ ซึ่งอยู่ในคอลัมน์ชื่อ amenity ให้คลิกที่ปุ่ม Select features using an expression

ให้ป้อนค่า "amenity" = 'pub' จากนั้น คลิกที่ปุ่ม Select.

กลับมายังตัวโปรแกรม QGIS คุณจะเห็นบางจุดถูกทำไฮไลท์สีเหลืองไว้ นั่นคือผลลัพธ์จากการกรองข้อมูล ให้คลิกขวาที่ชั้นข้อมูล
london_points
อีกครั้ง จากนั้นเลือก Save Selection As...

ในหน้าต่าง Save vector layer as... ให้ป้อนชื่อไฟล์ที่ต้องการจะบันทึกเป็น
london_pubs.shp
โดยไม่ต้องเลือกตัวเลือกใดๆ ยกเว้นตัวเลือก Add saved file to map จากนั้นคลิกที่ปุ่ม OK

คุณจะเห็นชั้นข้อมูลใหม่ชื่อ
london_pubs
ใน QGIS ให้กดปิดการแสดงผลของชั้นข้อมูลlondon_points
ซึ่งเราไม่ได้ใช้แล้ว

ตอนนี้ข้อมูล shapefile ของร้านเหล้าก็เสร็จแล้ว คุณสามารถใช้เครื่องมือ Identify เพื่อคลิกดูแต่ละจุดว่ามีข้อมูล attribute ใดอยู่บ้าง

If you want to report any issues with this tutorial, please comment below. (requires GitHub account)