API

วิธีค้นหาเส้นทางที่ดีที่สุดด้วย Matrix Routing API

Longdo Maxtrix Routing API คือ วิธีการคำนวนระยะทางและเวลาของการเดินทาง ด้วยข้อมูลจำนวน MxN ตำแหน่ง (M = จุดเริ่มต้น, N = จุดปลายทาง) ด้วยสภาพจราจร ณ ขณะนั้น

เช่น เรามีข้อมูลจุดเริ่มต้นตำแหน่ง A, B และมีจุดปลายทางตำแหน่ง X, Y, Z ดังตารางด้านล่างนี้

OriginDestination
A (13.745, 100.534) BTS สยามX ( 13.919, 100.601) สนามบินดอนเมือง
A (13.745, 100.534) BTS สยามY (13.693, 100.750) สนามบินสุวรรณภูมิ
A (13.745, 100.534) BTS สยามZ (13.812, 100.548) สถานีขนส่งหมอชิต
B (13.738, 100.516) สถานีรถไฟหัวลำโพงX (100.601, 13.919) สนามบินดอนเมือง
B (13.738, 100.516) สถานีรถไฟหัวลำโพงY (13.693, 100.750) สนามบินสุวรรณภูมิ
B (13.738, 100.516) สถานีรถไฟหัวลำโพงZ (13.812, 100.548) สถานีขนส่งหมอชิต

Service ที่ใช้:

https://mmmap15.longdo.com/mmroute/json/route/matrix?flon[0]=100.534&flat[0]=13.745&flon[1]=100.516&flat[1]=13.738&tlon[0]=100.601
&tlat[0]=13.919&tlon[1]=100.750&tlat[1]=13.693&tlon[2]=100.548&tlat[2]=13.812&key=fortestonlydonotuseinproduction!

***สมัครคีย์ API***

ข้อมูลที่เราส่งไปจะเป็น Array ของตำแหน่งพิกัดที่มี ตามตัวอย่างข้างต้น

  • flon, flat = พิกัดจุดเริ่มต้น (สูงสุด 25)
  • tlat, tlon = พิกัดจุดปลายทาง (สูงสุด 25)

ดู documentation อย่างละเอียด: http://api.longdo.com/map/doc/content/rest.php#RouteMatrix

ผลลัพธ์ที่ได้:

{
   "meta": {
     "fromCount": 2,
     "toCount": 3
   },
   "data": [
     [
       {
         "distance": 26120,
         "interval": 1744
       },
       {
         "distance": 43404,
         "interval": 3433
       },
       {
         "distance": 16564,
         "interval": 1362
       }
     ],
     [
       {
         "distance": 27547,
         "interval": 1863
       },
       {
         "distance": 44131,
         "interval": 3415
       },
       {
         "distance": 10668,
         "interval": 996
       }
     ]
   ]
 }

คำอธิบาย:

  • distance คือ ระยะทางในหน่วยเมตร
  • interval คือ เวลาเดินทาง หน่วยวินาที

สรุปจากข้างต้น

การเดินทางจาก สถานีรถไฟหัวลำโพง (B)” ไปยัง สถานีขนส่งหมอชิต (Z)” ใกล้ที่สุด ด้วยระยะทาง 10.46 กิโลเมตร ใช้เวลาเดินทาง 1267/60 = ประมาณ 21 นาที นั่นเอง


ซึ่งการค้นหาด้วย matrix distance นั้น จะนับ transaction ตามผลลัพธ์ที่ได้ กล่าวคือ หากเป็น 2×3 ตำแหน่ง หมายความว่า 1 ครั้ง จะใช้ 6 transaction นั่นเอง

จบไปแล้วครับ ตัวอย่างการแสดงภาพโดรนบนแผนที่อย่างง่าย มีวิธีติดตาม Longdo Map ได้ง่ายๆ หลายช่องทาง ดังนี้

  • ศึกษาการใช้ Longdo Map เพิ่มเติมได้ที่ https://map.longdo.com/docs/
  • ดูเคล็ดลับและเทคนิคอื่นๆ เพิ่มเติมได้ที่ https://map.longdo.com/blog
  • เรียนเชิญนักพัฒนาเว็บทุกท่านเข้าร่วมกลุ่ม Longdo Map API Community กันได้ที่นี่เลยครับ 🙂 https://www.facebook.com/groups/708165893234850

พบกันในบทความถัดไปครับ