我正在python 2.7中构建一个独立的邻近搜索工具(意图是使用py2exe和NSIS分发它)和tkinter,它需要一个中心点地址,查询数据库,并在一定范围内返回数据库中的所有地址。
这是我第一次冒险进入谷歌api,我非常困惑如何利用它来检索这些数据。
我遵循这里的代码:http://www.libertypages.com/clarktech/?p=315
却只得到610分。
我尝试使用这个url代替,基于一个问题在这里堆栈溢出,并收到一个访问拒绝错误:http://maps.googleapis.com/maps/api/geocode/xml?
我已经在API控制台中设置了项目,启用了maps服务,添加了浏览器和服务器API密钥,都尝试了,但都失败了。
我花了一整个上午浏览API文档,我找不到任何东西告诉我为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"one_answers"失败"作为我的数据库中所有地址的最后和长。:/
我已经尝试了服务器应用程序API密钥和浏览器应用程序API密钥,Oauth客户端ID不是一个选项,因为我不希望我的用户必须允许访问。
我真的希望有人能说"去读读这个文件,你这个白痴",然后我就可以夹着尾巴慢吞吞地走了。
更新:我发现这个:https://developers.google.com/maps/documentation/geocoding/实现了它建议的变化,没有变化,但它需要更长的时间来给我"ACCESS DENIED"响应。
API Key正在导致失败。我把它从查询参数字典中取出,它只是作为一个匿名请求。
params = { }
params[ 'sensor' ] = "false"
params[ 'address' ] = query