18, พ.ค. 2020
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 เพื่อเพิ่มประสิทธิภาพการโหลดแผนที่

ใส่ความเห็น

Related Posts