2011-04-27 5 views
7

Google지도에 표시 할 위도, 경도 쌍에 주소를 지오 코딩해야하지만 장고에서이 서버 측을 수행해야합니다. Javascript V3 API에 대한 참조 만 찾을 수있었습니다. 파이썬에서 어떻게합니까?Python에서 주소 좌표를 얻는 방법

답변

11

Py-Googlemaps을 사용하시기 바랍니다. 그것은 쉽게 사용하려면 :

from googlemaps import GoogleMaps 
gmaps = GoogleMaps(API_KEY) 
lat, lng = gmaps.address_to_latlng(address) 
+0

는 가능한 한 GoogleV3 클래스를 사용하여 Google 서비스를 사용하려면 정의 할 수 있습니다? Javascript v3 API 키를 생성했지만 작동하지 않는 것 같습니다. – powerj1984

+2

대신 다음 코드를 사용하십시오. http://code.xster.net/pygeocoder/wiki/Home – powerj1984

+0

Rep for Rep : https://github.com/googlemaps/google-maps-services-python –

5

Google 데이터는 API for Maps을 가지고하는 것은 REST-ful API있다 - 그리고 그들은 또한 Python library 이미 주위에 구축했다.

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 

매개 변수 및 추가 정보의 전체 목록은 official documentation를 참조하십시오

0

여기 (this answer 기준) Google지도 API v3에서 작동하는 코드입니다.

6

난 강력하게 geopy를 사용하는 것이 좋습니다 :

Google지도 패키지의 최신 버전에서 사용할 수 있습니다. 위도와 경도가 반환됩니다. 나중에 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) 

은 또한 당신이 특별히 더 이상이 라이브러리와 함께 작동 API 키를 얻을 수있는 geolocator

>>> from geopy.geocoders import GoogleV3 
>>> geolocator = GoogleV3() 
관련 문제