R-studio : ( EP#06 ) วิธีแสดง polygon หลายชั้นข้อมูลชนิด Shapefile ใน leaflet ด้วยโปรแกรม R
R-studio : ( EP#06 ) วิธีแสดง polygon หลายชั้นข้อมูลชนิด Shapefile ใน leaflet ด้วยโปรแกรม R
ในตอน R-Studio (EP#06) นี้ เราจะเรียนรู้วิธี แสดงผล Polygon หลายชั้นข้อมูล (Multiple Layers of Shapefile) บนแผนที่ Leaflet ด้วยภาษา R ซึ่งเหมาะสำหรับการวิเคราะห์เชิงพื้นที่ที่เกี่ยวข้องกับหลายระดับ เช่น ลุ่มน้ำ (BASIN) และ ขอบเขตจังหวัด (THPROV) บนแผนที่เดียวกัน
R script ประกอบการเรียนรู้ และ shapefile [BASIN] & shapefile [THPROV] https://docs.google.com/forms/d/e/1FAIpQLScDvubf_qVdT1SYCdXKi5580cix7uQlAHzuo2bFs9_anojPBg/viewform
🧭 วัตถุประสงค์
- เรียนรู้การแสดง หลายชั้นข้อมูล Shapefile (Polygon) ในแผนที่ Leaflet
- เรียนรู้การใช้คำสั่ง
leaflet()
และaddPolygons()
สำหรับแต่ละชั้น - สร้างแผนที่แบบ Interactive และควบคุมการแสดงผล Layer
📦 ชุดข้อมูลที่ใช้
สามารถดาวน์โหลดได้จากฟอร์ม: 👉 Shapefile BASIN และ THPROV
- BASIN.shp – ข้อมูลลุ่มน้ำ
- THPROV.shp – ข้อมูลขอบเขตจังหวัดของประเทศไทย
📌 ตัวอย่างโค้ด R สำหรับ Leaflet (หลายชั้น Polygon)
rCopyEdit# โหลด package ที่จำเป็น
library(sf)
library(leaflet)
# อ่าน shapefile
basin <- st_read("BASIN.shp")
province <- st_read("THPROV.shp")
# สร้างแผนที่ leaflet
leaflet() %>%
addTiles() %>%
addPolygons(data = basin,
fillColor = "blue",
weight = 1,
opacity = 1,
color = "white",
fillOpacity = 0.5,
group = "ลุ่มน้ำ BASIN") %>%
addPolygons(data = province,
fillColor = "green",
weight = 1,
opacity = 1,
color = "black",
fillOpacity = 0.2,
group = "จังหวัด THPROV") %>%
addLayersControl(
overlayGroups = c("ลุ่มน้ำ BASIN", "จังหวัด THPROV"),
options = layersControlOptions(collapsed = FALSE)
)
📝 คำอธิบายเพิ่มเติม
ฟังก์ชัน | รายละเอียด |
---|---|
st_read() | อ่านไฟล์ Shapefile ด้วย Simple Features |
addPolygons() | เพิ่มชั้นข้อมูล Polygon บนแผนที่ |
group | กำหนดชื่อกลุ่ม Layer เพื่อควบคุมการเปิด/ปิด |
addLayersControl() | เพิ่มกล่องควบคุมการแสดง Layer |
🧠 ประโยชน์เชิงวิชาการ
- สามารถใช้แสดง ชั้นข้อมูลหลากหลายมิติ บนแผนที่เดียว เช่น ข้อมูลสิ่งแวดล้อม – ข้อมูลประชากร
- สร้างเครื่องมือการเรียนการสอนแบบ Interactive GIS Visualization
- เป็นแนวทางเริ่มต้นสำหรับ Web GIS Development ด้วย R-Shiny + Leaflet
📌 แนะนำเพิ่มเติม
- หากต้องการให้ แสดงค่าจาก Attribute Table เมื่อคลิก Polygon → ใช้
label = ~FIELD_NAME
- หากมีข้อมูลมาก ควรใช้
simplify
เพื่อเพิ่มประสิทธิภาพการโหลดแผนที่