เริ่มต้นใช้งาน API
เรียกดูชั้นดิน PMTiles, ดิน KML, พืช/สิ่งปกคลุมดิน, ขอบเขต และข้อมูลหน่วยงานภายนอก — ทุก endpoint ตอบเป็น JSON และเปิด CORS
หลังอัปไฟล์ขึ้นเซิร์ฟเวอร์ ให้เปิด
api/?action=health
เป็นอันดับแรก — จะบอกในที่เดียวว่าชุดข้อมูลไหนขึ้นไม่ครบและ PHP ตัวไหนขาด
1) รายการบริการ
คลิกชื่อไฟล์เพื่อเปิดดูผลลัพธ์จริง
| บริการ | Endpoint | ใช้ทำอะไร |
|---|---|---|
| แคตตาล็อกรวม | api/ · catalog.php | รายการ API ทั้งระบบ + หน่วยงานภายนอก |
| พืช / สิ่งปกคลุมดิน | landcover.php | หาไฟล์ GeoTIFF ตามปี/พื้นที่ |
| ดิน KML ปี 2558 | soil.php | หาไฟล์ KML ตาม จังหวัด/อำเภอ/ตำบล |
| ดิน PMTiles | pmtiles.php | ชั้นในโฟลเดอร์ soil/ |
| ขอบเขตการปกครอง | boundary.php | ตรวจไฟล์ GeoJSON |
| เครื่องมือแผนที่ | tools.php | วัดระยะ พิมพ์ แชร์ ดาวน์โหลด |
| พร็อกซีภายนอก | api-proxy.php | TMD / DWR / DOA |
2) ชั้นดิน PMTiles soil/
ใช้กับโฟลเดอร์ soil/*.pmtiles และแผง ชั้นข้อมูลดิน (PMTiles) ในหน้าแผนที่
Actions
| action | คำอธิบาย |
|---|---|
catalog | สรุปชั้นทั้งหมด + ขนาดไฟล์ (ค่าเริ่มต้น) |
layers | รายการชั้น (กรองด้วย group= ได้) |
resolve | รายละเอียดชั้นเดียว (key= บังคับ) |
health | ตรวจว่าไฟล์ครบหรือไม่ |
คีย์ชั้นหลัก
- ความเสี่ยง:
drought,floodprone,landslideprone - การชะล้าง:
soil_erosion - ความเหมาะสม:
suit_rice,suit_corn,suit_cassava,suit_rubber,suit_oilpalm - เขตปลูก:
zone_rice,zone_corn,zone_cassava,zone_rubber,zone_oilpalm
ตัวอย่าง URL
api/pmtiles.php api/pmtiles.php?action=layers api/pmtiles.php?action=resolve&key=suit_rice api/pmtiles.php?action=health
หมายเหตุ: ไฟล์ .pmtiles ใหญ่ — เซิร์ฟเวอร์ต้องรองรับ HTTP Range Request
3) ดิน KML ปี 2558
| action | คำอธิบาย |
|---|---|
catalog | สรุปบริการ + ประเภทดิน |
types | สี/ชื่อประเภทดิน |
index | ทั้ง kml/soil_index.json |
resolve | หาไฟล์ KML ตามพื้นที่ |
health / ping | ตรวจสถานะบริการ |
api/soil.php?action=resolve&province=ขอนแก่น api/soil.php?action=resolve&province=ขอนแก่น&hoe=เมืองขอนแก่น api/soil.php?action=resolve&province=ขอนแก่น&hoe=เมืองขอนแก่น&tambon=ในเมือง
ต้องการ: kml/soil_index.json, kml/by_province/, kml/by_amphoe/, kml/by_tambon/
4) พืช / สิ่งปกคลุมดิน
api/landcover.php api/landcover.php?action=classes api/landcover.php?action=resolve&year=2025&province=ขอนแก่น
ต้องการโฟลเดอร์: TH-2024-wgs84/, TH-2025-wgs84/
5) ขอบเขตการปกครอง
api/boundary.php api/boundary.php?action=health
Boundary_Thailand/Thailand_pro.geojsonBoundary_Thailand/Thailand_amp.geojsonBoundary_Thailand/Thailand_tam.geojson
6) เครื่องมือแผนที่
อธิบายปุ่มในแผง เครื่องมือ ของหน้าแผนที่:
- วัดระยะ
- พิมพ์แผนที่
- แชร์แผนที่ (ลิงก์พร้อมพิกัด/ขอบเขต)
- ดาวน์โหลด (GeoJSON / KML / PNG)
7) พร็อกซีภายนอก
ใช้เมื่อ API ภายนอกติด CORS — เรียกผ่านเซิร์ฟเวอร์ของเรา
../api-proxy.php?src=weatherToday ../api-proxy.php?src=weather3Hours ../api-proxy.php?src=dailyForecast ../api-proxy.php?src=dwrWaterStations ../api-proxy.php?src=doaCropEw ../api-proxy.php?src=__diag
ทุก src มี cache ฝั่งเซิร์ฟเวอร์ — ยิงออกไปต้นทางอย่างมาก 1 ครั้งต่อรอบ TTL ไม่ว่าจะมีผู้ใช้กี่คน และถ้าต้นทางล่มจะเสิร์ฟข้อมูลเก่าแทนการพัง
| ส่วนหัวตอบกลับ | ความหมาย |
|---|---|
X-Cache: HIT | ได้จาก cache ไม่ได้แตะต้นทาง (เร็วสุด) |
X-Cache: MISS | เพิ่งดึงสดจากต้นทางและเก็บ cache ไว้แล้ว |
X-Cache: STALE | ต้นทางล่ม — เสิร์ฟข้อมูลเก่าแทน (ดู Age ว่าเก่ากี่วินาที) |
HTTP 503 | ต้นทางล่มและไม่มีข้อมูลเก่าเลย — ลองใหม่ตาม Retry-After |
เติม &refresh=1 เพื่อบังคับดึงใหม่ (จำกัดไม่เกิน 1 ครั้ง/นาที ต่อ src)
8) หน่วยงานภายนอก
API จากหน่วยงานภายนอกที่ใช้ในระบบ (TMD, RID, DGR, เสาตรวจวัด ฯลฯ) — คัดเฉพาะ endpoint ที่เป็น JSON
กำลังโหลดรายการ…
9) ตัวอย่าง JavaScript
PMTiles
const res = await fetch('api/pmtiles.php?action=resolve&key=suit_rice');
const data = await res.json();
if (data.ok) {
console.log(data.layer.url); // path บนแผนที่
}
ดิน KML
const res = await fetch('api/soil.php?action=resolve&province=' + encodeURIComponent('ขอนแก่น'));
const data = await res.json();
if (data.ok) {
console.log(data.url, data.mb);
}
10) รหัสผิดพลาดที่พบบ่อย
| สถานการณ์ | ความหมาย |
|---|---|
ok: false + province_required | ยังไม่ได้ส่งจังหวัด |
soil_index_missing | ยังไม่มี kml/soil_index.json |
file_missing / layer_not_found | ไม่พบไฟล์หรือคีย์ชั้น |
HTTP 500 จาก api-proxy.php | เปิด ?src=__diag เพื่อตรวจ PHP/cURL |
11) ใช้ร่วมกับหน้าแผนที่
ดาวน์โหลด PNG: แนะนำพื้นหลัง OSM หรือ Carto Light (Google อาจติด CORS)
| โมดูล | ใช้ข้อมูล |
|---|---|
gis-boundary.js | ขอบเขตการปกครอง |
gis-soil-kml.js | ดิน KML ตามพื้นที่ |
gis-soil-pmtiles.js | ดิน PMTiles จาก soil/ |
gis-tools.js | วัดระยะ พิมพ์ แชร์ ดาวน์โหลด |
gis-maps.js | พืช / GeoTIFF |
12) ทดสอบสด
กำลังโหลดแคตตาล็อก…
อัปเดต: สิงหาคม 2026 · สำนักงานเศรษฐกิจการเกษตร · GeoAI for agriculture
เอกสารนี้แทนไฟล์ Markdown เดิม — เปิดใช้งานผ่าน api/docs.html