Как получить координаты адреса из Python
5 ответов
Я бы предложил использовать Py-Googlemaps. Использовать его легко:
from googlemaps import GoogleMaps
gmaps = GoogleMaps(API_KEY)
lat, lng = gmaps.address_to_latlng(address)
я настоятельно рекомендую использовать geopy. Он вернет широту и долготу, вы можете использовать его в клиенте Google JS после этого.
>>> from geopy.geocoders import Nominatim
>>> geolocator = Nominatim()
>>> location = geolocator.geocode("175 5th Avenue NYC")
>>> print(location.address)
Flatiron Building, 175, 5th Avenue, Flatiron, New York, NYC, New York, ...
>>> print((location.latitude, location.longitude))
(40.7410861, -73.9896297241625)
кроме того, вы можете конкретно определить, что хотите использовать службы Google, используя GoogleV3
класс как геолокатор
>>> from geopy.geocoders import GoogleV3
>>> geolocator = GoogleV3()
Google Data имеет API для карт есть REST-ful API - и у них тоже есть библиотека Python построен вокруг уже.
вот код, работающий для Google Maps API v3 (на основе ответ):
import urllib
import simplejson
googleGeocodeUrl = 'http://maps.googleapis.com/maps/api/geocode/json?'
def get_coordinates(query, from_sensor=False):
query = query.encode('utf-8')
params = {
'address': query,
'sensor': "true" if from_sensor else "false"
}
url = googleGeocodeUrl + urllib.urlencode(params)
json_response = urllib.urlopen(url)
response = simplejson.loads(json_response.read())
if response['results']:
location = response['results'][0]['geometry']['location']
latitude, longitude = location['lat'], location['lng']
print query, latitude, longitude
else:
latitude, longitude = None, None
print query, "<no results>"
return latitude, longitude
посмотреть официальная документация для получения полного списка параметров и дополнительной информации.
пакет Python googlemaps
кажется, очень способен делать геокодирование и обратное геокодирование.
последняя версия пакета googlemaps доступна по адресу:https://pypi.python.org/pypi/googlemaps