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

คำนวณพิกัดทางภูมิศาสตร์ของสถานที่โดยใช้ google geocoding API ใน Python หรือไม่


ในการรับพิกัดทางภูมิศาสตร์ของสถานที่ที่เป็นลองจิจูดและละติจูดของสถานที่นั้น เราสามารถใช้ google maps geocoding api

ความต้องการ

ในการรับพิกัดของสถานที่ เราจำเป็นต้องมี geocoding api และคุณสามารถรับได้จากลิงค์ด้านล่าง:

https://developers.google.com/maps/documentation/geocoding/get-api-key

นอกจาก api_key แล้ว เราจะใช้ python

  • ขอโมดูล (เรียกพิกัด)
  • โมดูล Json (สำหรับการแปลง)

ด้านล่างเป็นโปรแกรมเพื่อให้บรรลุเช่นเดียวกัน:

# Import required library
import requests
import json
#Enter the place name
place = input("Please enter place name: ")
#Place your google map API_KEY to a variable
apiKey = 'YOUR_API_KEY'
#Store google geocoding api url in a variable
url = 'https://maps.googleapis.com/maps/api/geocode/json?'
# call get method of request module and store respose object
r = requests.get(url + 'address =' + place + '&key =' + apiKey)
#Get json format result from the above response object
res = r.json()
#print the value of res
print(res)

ผลลัพธ์

Please enter place name: Dehradun
{'results': [{'address_components': [{'long_name': 'Dehradun', 'short_name': 'Dehradun', 'types': ['locality', 'political']}, {'long_name': 'Dehradun', 'short_name': 'Dehradun', 'types': ['administrative_area_level_2', 'political']}, {'long_name': 'Uttarakhand', 'short_name': 'UK', 'types': ['administrative_area_level_1', 'political']}, {'long_name': 'India', 'short_name': 'IN', 'types': ['country', 'political']}], 'formatted_address': 'Dehradun, Uttarakhand, India', 'geometry': {'bounds': {'northeast': {'lat': 30.4041936, 'lng': 78.1089305}, 'southwest': {'lat': 30.2466633, 'lng': 77.92533879999999}}, 'location': {'lat': 30.3164945, 'lng': 78.03219179999999}, 'location_type': 'APPROXIMATE', 'viewport': {'northeast': {'lat': 30.4041936, 'lng': 78.1089305}, 'southwest': {'lat': 30.2466633, 'lng': 77.92533879999999}}}, 'place_id': 'ChIJr4jIVsMpCTkRmYdRMsBiNUw', 'types': ['locality', 'political']}], 'status': 'OK'}