Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

คำนวณระยะทางและระยะเวลาระหว่างสองสถานที่ด้วย Google Distance Matrix API ใน Python

เราเกือบทุกคนใช้ 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 หรือนำไปประยุกต์ในแอปพลิเคชันนำทาง ระบบจัดส่ง และอื่นๆ