เราเกือบทุกคนใช้ Google Maps เพื่อตรวจสอบระยะทางระหว่างต้นทางและปลายทาง รวมถึงเวลาเดินทาง สำหรับนักพัฒนาและผู้สนใจ Google จัดเตรียม Google Distance Matrix API ไว้เพื่อคำนวณระยะทางและระยะเวลาระหว่างสองสถานที่ได้อย่างง่ายดาย
การขอ API Key
ในการใช้ Google Distance Matrix API คุณจะต้องมี Google Maps API Key ซึ่งสามารถขอได้จากลิงก์ด้านล่าง:
https://developers.google.com/maps/documentation/distance-matrix/get-api-key
ไลบรารีที่จำเป็น
เราสามารถทำได้โดยใช้ไลบรารี Python ต่างๆ เช่น:
- Pandas
- googlemaps
- Requests
- Json
ในตัวอย่างนี้จะใช้ไลบรารี requests และ json พื้นฐาน หากใช้ Pandas จะสามารถใส่หลายสถานที่ต้นทางและปลายทางพร้อมกันได้ และบันทึกผลลัพธ์เป็นไฟล์ CSV
โค้ดตัวอย่าง
# นำเข้าไลบรารีที่จำเป็น
import requests
import json
# รับสถานที่ต้นทางและปลายทางจากผู้ใช้
originPoint = input("กรุณาใส่เมืองต้นทาง: ")
destinationPoint = input("กรุณาใส่เมืองปลายทาง: ")
# ใส่ Google Maps API Key ของคุณ
apiKey = 'YOUR_API_KEY'
# URL ของ Google Maps Distance Matrix API
url = 'https://maps.googleapis.com/maps/api/distancematrix/json?'
# เรียก API และเก็บ response
r = requests.get(url + 'origins=' + originPoint + '&destinations=' + destinationPoint + '&key=' + apiKey)
# แปลงผลลัพธ์เป็น JSON
res = r.json()
# แสดงผลลัพธ์
print(res)
ผลลัพธ์ตัวอย่าง
กรุณาใส่เมืองต้นทาง: Delhi
กรุณาใส่เมืองปลายทาง: Karnataka
{'destination_addresses': ['Karnataka, India'], 'origin_addresses': ['Delhi, India'], 'rows': [{'elements': [{'distance': {'text': '1,942 km', 'value': 1941907}, 'duration': {'text': '1 day 9 hours', 'value': 120420}, 'status': 'OK'}]}], 'status': 'OK'}
คำอธิบายผลลัพธ์
- distance.text: ระยะทางในรูปแบบข้อความที่อ่านง่าย (เช่น "1,942 km")
- distance.value: ระยะทางในหน่วยเมตร (1941907 เมตร)
- duration.text: เวลาเดินทางในรูปแบบข้อความ (เช่น "1 day 9 hours")
- duration.value: เวลาเดินทางในหน่วยวินาที (120420 วินาที)
- status: สถานะของคำขอ ("OK" หมายความว่าสำเร็จ)
โค้ดนี้สามารถปรับใช้งานได้หลากหลาย เช่น ใช้กับหลายสถานที่พร้อมกันด้วย Pandas หรือนำไปประยุกต์ในแอปพลิเคชันนำทาง ระบบจัดส่ง และอื่นๆ