Geocoding API เป็นบริการที่ออกแบบมาเพื่อแปลงข้อมูลที่อยู่ (เช่น เลขที่บ้าน, เลขหมู่ที่, ชื่อถนน, ขอบเขตการปกครอง) ให้เป็นพิกัดทางภูมิศาสตร์ (ละติจูดและลองจิจูด) ซึ่งสามารถนำไปใช้ในการแสดงผลบนแผนที่หรือใช้ในการวิเคราะห์ทางภูมิศาสตร์ต่างๆ ได้ นอกจากนี้ บางบริการยังสามารถทำ Reverse Geocoding ซึ่งเป็นกระบวนการแปลงพิกัดทางภูมิศาสตร์กลับเป็นที่อยู่ที่เข้าใจได้ง่าย เช่น จากละติจูดและลองจิจูดที่มี เปลี่ยนไปเป็นชื่อถนนหรือที่อยู่ที่สามารถอ่านได้
วันนี้ Longdo Map Team จะขอนำเสนอตัวอย่างการใช้งาน API ของเราอย่างง่าย ดังนี้
1. การเตรียมข้อมูลสำหรับส่งคำขอ
นักพัฒนาต้องเตรียมข้อมูลที่อยู่ที่ต้องการค้นหา เช่น “98 อาคารสาทร สแควร์ ออฟฟิศ ทาวเวอร์ ชั้น 4 ห้อง 407 ถนนสาทรเหนือ แขวงสีลม เขตบางรัก กรุงเทพมหานคร 10500”
โดยตัวอย่างที่ดีในการส่งข้อมูลคือ การระบุคำนำหน้าให้กับรายละเอียดที่อยู่ต่าง ๆ เช่น “หมู่ที่ 7 ตำบล….”, “หมู่บ้านพฤกษาวิลล์”, “ซอยพัฒนาการ”, “ถนนวิภาวดี”, “แขวงคลองบางบอน” ซึ่งการระบุที่ชัดเจนเหล่านี้ จะทำให้บริการ Geocoding API จัดการส่งคืนข้อมูลได้แม่นยำและรวดเร็วมากยิ่งขึ้น (เนื่องจากบางครั้งชื่อซอย, ถนน และขอบเขตการปกครองคือชื่อเดียวกัน)
2. การสร้างคำขอผ่าน HTTP GET หรือ POST
นักพัฒนาสามารถใช้คำขอ HTTP GET หรือ POST เพื่อส่งข้อมูลไปยัง API ได้ ทั้งนี้ขึ้นอยู่กับความสะดวกหรือข้อจำกัดในการเขียนโค้ดของท่าน
การใช้งานผ่าน HTTP GET:
GET https://search.longdo.com/addresslookup/api/addr/geocoding?text=98%20อาคารสาทร%20สแควร์%20ออฟฟิศ%20ทาวเวอร์%20ชั้น%204%20ห้อง%20407%20ถนนสาทรเหนือ%20แขวงสีลม%20เขตบางรัก%20กรุงเทพมหานคร%2010500&key=[YOUR-KEY-API]
ในตัวอย่างนี้ text
คือข้อมูลที่อยู่ที่คุณต้องการค้นหา และ key
คือการขอรับการใช้บริการ Geocoding API ซึ่งนักพัฒนาสามารถใช้ได้ฟรี 100,000 transactions/month โดยดูวิธีการสมัครคีย์ได้ที่นี่
การใช้งานผ่าน HTTP POST:
POST https://search.longdo.com/addresslookup/api/addr/geocoding
Content-Type: application/x-www-form-urlencoded
text=98%20อาคารสาทร%20สแควร์%20ออฟฟิศ%20ทาวเวอร์%20ชั้น%204%20ห้อง%20407%20ถนนสาทรเหนือ%20แขวงสีลม%20เขตบางรัก%20กรุงเทพมหานคร%2010500&key=[YOUR-KEY-API]
ในการใช้งานผ่าน POST คุณต้องระบุ Content-Type
เป็น application/x-www-form-urlencoded
และส่งข้อมูลในรูปแบบของ form data ใน body ของคำขอ
คู่มือพัฒนา: https://api.longdo.com/map/doc/rest.php#AddressLookup
3. ผลลัพธ์
หลังจากนั้นท่านจะได้รับผลลัพธ์ตามที่ร้องขอทันที
{
"data": [
{
"confidence": 0.9980645,
"location": {
"zipcode": "10500",
"province": {
"distance": 0,
"prefix": true,
"name": "กรุงเทพมหานคร"
},
"road": {
"distance": 0,
"prefix": true,
"name": "สาทรเหนือ"
},
"subdistrict": {
"distance": 0,
"prefix": true,
"name": "สีลม"
},
"district": {
"distance": 0,
"prefix": true,
"name": "บางรัก"
},
"condominium": {
"distance": null,
"prefix": null,
"name": ""
},
"houseno": "98",
"village_official": {
"distance": null,
"prefix": null,
"name": ""
},
"moo": "",
"village": {
"distance": null,
"prefix": null,
"name": ""
},
"alley": {
"distance": null,
"prefix": null,
"name": ""
},
"point": {
"distance": 1,
"prefix": true,
"name": "อาคารสาทรสแควร์ ออฟฟิศ ทาวเวอร์"
}
},
"point": [
{
"lon": 100.529566,
"lat": 13.722252
}
]
}
],
"meta": "98 อาคารสาทร สแควร์ ออฟฟิศ ทาวเวอร์ ชั้น 4 ห้อง 407 ถนนสาทรเหนือ แขวงสีลม เขตบางรัก กรุงเทพมหานคร 10500"
}
ซึ่งผลลัพธ์จะระบุคำค้นของท่าน พร้อมกับรายละเอียดต่าง ๆ เช่นพิกัดที่ระบบหามาให้ (point), ความมั่นใจของการคืนผลลัพธ์ (confidence) เป็นต้นดูคำอธิบายผลลัพธ์: https://api.longdo.com/map/doc/rest.php#AddressLookup
ภาพตัวอย่างการนำไปพัฒนาเป็นหน้าเว็บไซต์ เพื่อแยกที่อยู่ลูกค้าสำหรับนำไปทำการตลาดต่อไป
การใช้ Geocoding API ของ Longdo Map เป็นวิธีที่มีประสิทธิภาพในการแปลงที่อยู่เป็นพิกัดทางภูมิศาสตร์ ซึ่งสามารถนำไปใช้ประโยชน์ในหลายๆ ด้านได้อย่างมาก เช่น
- ธุรกิจจัดส่งสินค้าที่มีชื่อที่อยู่จากลูกค้าจำนวนมาก แต่ไม่สามารถทราบพิกัดจริงบนแผนที่ สำหรับต่อยอดการวางแผนเส้นทาง
- ธุรกิจการตลาดที่ต้องใช้พิกัดจริงจากที่อยู่ของลูกค้า เพื่อนำไปสร้างเคมเปญหรือเก็บสถิติในพื้นที่เป็นต้น
โดย Longdo Map มีข้อมูลสถานที่สำคัญมากกว่า 1 ล้านจุดในปัจจุบันเลยทีเดียว (ข้อมูลปี พ.ศ. 2567)
ยังมีเทคนิคอีกมากมายที่จะให้นักพัฒนาทุกท่านได้ศึกษา สามารถเข้าร่วมกลุ่ม Longdo Map API Community กันได้ที่นี่เลย : ) https://www.facebook.com/groups/708165893234850
หากนักพัฒนาหรือเจ้าของธุรกิจมีโจทย์เหล่านี้อยู่ ก็สามารถใช้ Longdo Map API เพื่อการแปลงพิกัดนี้ได้ฟรี! 100,000 service transactions ต่อเดือน โดยข้อมูลที่แปลงได้นั้นลึกถึงบ้านเลขที่ หรือหมู่ที่ในตำบลกันเลยทีเดียว