Python|使用 GoogleMaps API 获取最近的医院位置
如果您对如何使用当前位置获取最近的位置(餐厅、医院、实验室、咖啡馆等)位置感到好奇,可以使用Python和 Google Maps API 来实现。在本文中,我们将使用 Google Maps API 使用Python查找最近的医院位置。
API 密钥可以使用谷歌开发者控制台生成。然后你应该按照那里的步骤来制作一个 API 密钥。
执行:
- 在运行代码之前安装所需的Python库:googleplaces、requests
- 创建一个转到此链接的 google Maps API 密钥。
- 将 Google Places 构造函数初始化为: google_places = GooglePlaces(API_KEY)
- 调用这个函数google_places.nearby_search ,参数为纬度、经度、半径和类型:{医院、赌场、酒吧、咖啡馆等},并将输出存储在一个变量中。用户可以在参数中给出自己的经纬度。
- 搜索结果将属于类类型:“googleplaces.Place”。
- 属性的值可以打印为经度、纬度、名称
下面是实现代码:
Python3
# Importing required libraries
from googleplaces import GooglePlaces, types, lang
import requests
import json
# This is the way to make api requests
# using python requests library
# send_url = 'http://freegeoip.net/json'
# r = requests.get(send_url)
# j = json.loads(r.text)
# print(j)
# lat = j['latitude']
# lon = j['longitude']
# Generate an API key by going to this location
# https://cloud.google.com /maps-platform/places/?apis =
# places in the google developers
# Use your own API key for making api request calls
API_KEY = 'Your_API_Key'
# Initialising the GooglePlaces constructor
google_places = GooglePlaces(API_KEY)
# call the function nearby search with
# the parameters as longitude, latitude,
# radius and type of place which needs to be searched of
# type can be HOSPITAL, CAFE, BAR, CASINO, etc
query_result = google_places.nearby_search(
# lat_lng ={'lat': 46.1667, 'lng': -1.15},
lat_lng ={'lat': 28.4089, 'lng': 77.3178},
radius = 5000,
# types =[types.TYPE_HOSPITAL] or
# [types.TYPE_CAFE] or [type.TYPE_BAR]
# or [type.TYPE_CASINO])
types =[types.TYPE_HOSPITAL])
# If any attributions related
# with search results print them
if query_result.has_attributions:
print (query_result.html_attributions)
# Iterate over the search results
for place in query_result.places:
print(place)
# place.get_details()
print (place.name)
print("Latitude", place.geo_location['lat'])
print("Longitude", place.geo_location['lng'])
print()
输出:
Sarvodaya Hospital
Latitude 28.4222361
Longitude 77.3167904
Metro Heart Institute with Multispeciality
Latitude 28.4060327
Longitude 77.31803429999999
Asian Institute of Medical Sciences
Latitude 28.4260095
Longitude 77.29998359999999
Rawat Medical Store
Latitude 28.3928114
Longitude 77.30199
Sparsh Hospital
Latitude 28.4449953
Longitude 77.31859759999999
..more results