2013-03-08 11 views
15

यह मुझे पागल कर रहा है। मैंने अब तक इस कुंजी को 1000 बार हटा दिया है।GoogleMaps API- निर्देशांक (अक्षांश, देशांतर)

from googlemaps import GoogleMaps 
gmaps = GoogleMaps("AIzaSyBIdSyB_td3PE-ur-ISjwFUtBf2O0Uo0Jo") 
exactaddress ="1 Toronto Street Toronto" 
lat, lng = gmaps.address_to_latlng(exactaddress) 
print lat, lng 

GoogleMapsError: Error 610: G_GEO_BAD_KEY 

अब यह कोई स्पष्ट कारणों के लिए उपरोक्त त्रुटि लौट रहा है: कल यह एक आकर्षण की तरह काम किया, आज अब और नहीं यहाँ अजगर कोड है। मुझे नहीं लगता कि मैं अनुरोध सीमा या अधिकतम दर सुरक्षित पक्ष मैं भी शुरू की देरी (1sec) ... stil वही त्रुटि

किसी को भी किसी भी विचार है मैं कैसे कर सकते हो रही है पर रहने के लिए पहुँच गए हैं इसका समाधान करो? एक अलग पायथन मॉड्यूल के साथ काम करने के लिए ठीक है अगर आप उस विकल्प का संकेत दे सकते हैं जिसका मैं वर्तमान में उपयोग कर रहा हूं।

धन्यवाद सी

पुनश्च: कुंजी मान्य है, यह एक ग्राहक की कुंजी है और यह स्वचालित रूप से सक्षम था जब मैं अनुप्रयोग कंसोल में googlemap API3 सक्षम होना चाहिए। डोमेन या आईपी

संपादित करें के लिए कोई प्रतिबंध नहीं: तो यहाँ है कि मैं क्या

def decodeAddressToCoordinates(address): 
     urlParams = { 
       'address': address, 
       'sensor': 'false', 
     } 
     url = 'http://maps.google.com/maps/api/geocode/json?' + urllib.urlencode(urlParams) 
     response = urllib2.urlopen(url) 
     responseBody = response.read() 

     body = StringIO.StringIO(responseBody) 
     result = json.load(body) 
     if 'status' not in result or result['status'] != 'OK': 
       return None 
     else: 
       return { 
         'lat': result['results'][0]['geometry']['location']['lat'], 
         'lng': result['results'][0]['geometry']['location']['lng'] 
       } 

का उपयोग कर पुस्तकालय जेसन कहा कि मुझे भी दिलचस्प है लेकिन जब से मेरी कोड कुछ ठीक करने के लिए करना था (एक समाप्त हो गया है समय का उपयोग) मैंने अपने समाधान की कोशिश नहीं की है। मैं निश्चित रूप से इस बात पर विचार करूंगा कि यदि मुझे कोड फिर से लिखना है :-)

+0

सुनिश्चित नहीं है कि पाइथन कार्यान्वयन समान है, लेकिन v2 geocoding का उपयोग करने वाले लोग v2 के जीवन के अंत में समस्याएं पीड़ित थे। V3 पर स्विचिंग कुछ समस्याओं का इलाज लग रहा था। क्या अजगर के लिए कोई संस्करण अंतर है? – Rafe

+0

10 मार्च, 2013 से शुरू, वी 2 के लिए समर्थन नीचे चला गया, और जहां तक ​​मुझे पता है, googlemaps पैकेज v2 का उपयोग कर रहा है, जिसमें सिद्धांत रूप से अलग-अलग प्रश्न पते हैं, क्वेरी पता बदलना पर्याप्त होना चाहिए (googlemaps पैकेज में)। –

उत्तर

11

हालांकि Google ने Googlemaps के साथ वी 2 कॉल को बहिष्कृत किया है (यही कारण है कि आप टूटी हुई कॉल देख रहे हैं), उन्होंने हाल ही में घोषणा की है कि वे डेवलपर्स को दे रहे हैं वी 2 से वी 3 एपीआई में जाने के लिए छह महीने का विस्तार (8 सितंबर, 2013 तक)। विवरण के लिए Update on Geocoding API V2 देखें।

इस बीच, संभावित पायथन वी 3 समाधान के रूप में pygeocoder देखें।

+0

अपडेट के लिए बहुत बहुत धन्यवाद। मुझे इसे एक मौका और देना होगा। जब मैंने देखा कि कोई भी मदद नहीं कर सकता है, तो मैं थोड़ा और गुस्सा करता हूं और मुझे लगता है कि यह कार्य अब प्रारंभिक प्रश्न में चिपका हुआ है, जिसने बहुत अच्छी तरह से काम किया: – MiniMe

11

सितंबर 2013 से, Google मानचित्र API v2 no longer works

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 देखें: यहाँ API v3 (this answer के आधार पर) के लिए काम कर कोड है।

1

कुछ कोड गोल्फ़िंग किया और इस संस्करण के साथ समाप्त हो गया। आपकी ज़रूरत के आधार पर आप कुछ और त्रुटि शर्तों को अलग करना चाहेंगे।

import urllib, urllib2, json 

def decode_address_to_coordinates(address): 
     params = { 
       'address' : address, 
       'sensor' : 'false', 
     } 
     url = 'http://maps.google.com/maps/api/geocode/json?' + urllib.urlencode(params) 
     response = urllib2.urlopen(url) 
     result = json.load(response) 
     try: 
       return result['results'][0]['geometry']['location'] 
     except: 
       return None 
संबंधित मुद्दे