我正在python 2.7中构建一个独立的邻近搜索工具(目的是使用py2exe和NSIS分发它)和tkinter,它接受一个中心点地址,查询数据库,并在一定范围内返回数据库中的所有地址
这是我第一次冒险进入谷歌api,我对如何利用它来检索这些数据感到非常困惑。
我在这里遵循了代码:http://www.libertypages.com/clarktech/?p=315
除了610之外什么也得不到。
我尝试使用此网址,基于此处有关堆栈溢出的问题并收到拒绝访问错误:http://maps.googleapis.com/maps/api/geocode/xml?
我在API控制台中设置了项目,启用了地图服务,添加了浏览器和服务器api密钥,尝试了两者,但都失败了。
我整个上午花了很多时间来浏览API文档,我可以找到NOTHING,它告诉我为google maps api v3的简单API信息请求指定了什么URL。
这是我的函数的实际代码,当我用http://maps.google.com/maps/geo运行它时,它是我上面链接的一个稍微修改过的版本,混合了一些调试输出?我收到了610,0,0,0:
def get_location(self, query):
params = { }
params[ 'key' ] = "key from console" # the actual key, of course, is not provided here
params[ 'sensor' ] = "false"
params[ 'address' ] = query
params = urllib.urlencode( params )
print "http://maps.googleapis.com/maps/api/geocode/json?%s" % params
try:
f = urllib.urlopen( "http://maps.googleapis.com/maps/api/geocode/json?%s" % params )
一切都运行完美,我只用“610”和“失败”作为lat,并且对我数据库中的所有地址都很长。 :/
我尝试过服务器应用API密钥和浏览器应用API密钥,但Oauth客户端ID不是一个选项,因为我不希望我的用户必须允许访问。
我真的希望有人会说“去读这个文件,你这个白痴”,然后我可以用我的尾巴在我的腿间拖曳。
更新:我发现:https://developers.google.com/maps/documentation/geocoding/实施了它建议的更改,没有任何更改,但是需要更长时间才能给我“拒绝访问”响应。
答案 0 :(得分:2)
API Key导致它失败。我把它从查询参数字典中取出来,它只是作为一个匿名请求。
params = { }
params[ 'sensor' ] = "false"
params[ 'address' ] = query