1

我正在 python 2.7 中构建一个独立的邻近搜索工具(目的是使用 py2exe 和 NSIS 分发它)和 tkinter,它采用中心点地址,查询数据库,并返回数据库中一定范围内的所有地址。

这是我第一次涉足 google api,我对如何利用它来检索这些数据感到非常困惑。

我在这里遵循了代码:http ://www.libertypages.com/clarktech/?p=315

并且只收到一个 610。

我尝试使用此 url,基于堆栈溢出的问题并收到拒绝访问错误:http ://maps.googleapis.com/maps/api/geocode/xml ?

我已经在 API 控制台中设置了项目,启用了地图服务,添加了浏览器和服务器 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”和“失败”作为数据库中所有地址的经纬度。:/

我尝试了服务器应用程序 API 密钥和浏览器应用程序 API 密钥,Oauth 客户端 ID 不是一个选项,因为我不希望我的用户必须允许访问。

我真的希望有人会说“去阅读这份文件,你这个白痴”,然后我就可以把尾巴夹在两腿之间了。

更新:我发现了这个:https ://developers.google.com/maps/documentation/geocoding/实施了它建议的更改,没有更改,但是给我“拒绝访问”响应需要更长的时间。

4

1 回答 1

2

API 密钥导致它失败。我将它从查询参数字典中取出,它只是作为一个匿名请求工作。

    params = { }
    params[ 'sensor' ] = "false"
    params[ 'address' ] = query
于 2013-04-14T18:23:45.067 回答