从Google Maps API v3获取Lat和Long

时间:2013-04-14 17:42:40

标签: python google-api

我正在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/实施了它建议的更改,没有任何更改,但是需要更长时间才能给我“拒绝访问”响应。

1 个答案:

答案 0 :(得分:2)

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

    params = { }
    params[ 'sensor' ] = "false"
    params[ 'address' ] = query