谷歌静态地图镜头出现在第
问题描述:
我有一个基于Python的Google App Engine构建的网站。其中一项功能是可以使用Google静态地图更新您的当前位置。 Python代码负责生成静态地图的URL,而HTML模板只是简单地将其放在适当位置。这是在图像应该看起来像的空间:谷歌静态地图镜头出现在第
<tr>
<td colspan="4"><img border=0 src="{{img_url}}" /></td>
</tr>
...然后在这里是如何生成图像的URL:
self.template_values['img_url'] = "http://maps.google.com/staticmap?center=%s,%s&zoom=%s&size=%s&markers=%s,%s,midreda" % (str(rs['lat']), str(rs['lng']), str(rs['zoom']), str(MAP_SIZE[0])+"x"+str(MAP_SIZE[1]), str(rs['lat']), str(rs['lng']))
的RS []字典是从响应谷歌地图搜索。这会产生一个完全有效的静态地图网址:
<tr>
<td colspan="4"><img border=0 src="http://maps.google.com/staticmap?center=52.955115,-1.149172&zoom=11&size=512x512&markers=52.955115,-1.149172,midreda" /></td>
</tr>
以上图片的URL是“英国诺丁汉”搜索后。如果您访问的地址,您可以看到它按预期显示,正确的大小和一切。但是,在页面上(您可以通过spare-wheels.appspot.com/searchlocation查看,尽管您需要连接您的Facebook帐户才能使用它),但该图片并未显示出来。 HTML源代码看起来很好:没有明显的编码问题或类似的东西。我看不出有什么问题。有任何想法吗?
感谢
本
编辑:个位的测试之后我发现,地图有时工作,但大部分时间他们不这样做,而当他们的工作,他们通常停止工作刷新后
答
Google Maps API v1已弃用。有关免费静态地图使用不再需要API密钥的通知可能仅适用于使用Google Maps API V2的应用程序。
包含您的引荐者的浏览器请求正被拒绝,因此为什么它会在浏览器上显示破碎的图标图标。
切换到v2 URL或在URL中提供API密钥。
Google提供了一个upgrade guide为了您的方便。
正确V2的网址为您的样品网址是:
http://maps.google.com/maps/api/staticmap?center=52.955115,-1.149172&zoom=11&size=512x512&markers=size:mid|color:red|label:A|52.955115,-1.149172&sensor=false
注意到这些变化:
- 改变
/staticmap?
=>/maps/api/staticmap?
- 新增
sensor=false
- 改变
markers
从52.955115,-1.149172,midreda
到size:mid|color:red|label:A|52.955115,-1.149172
以上所有地图都使用红色标记正确显示地图,并应确保Google将您的请求识别为V2请求。
图像上的'border'属性不再是有效的HTML,但是如果确实使用它,请将0值放在引号中。 – 2011-03-22 13:19:24
这可能是由于缺少API密钥。如果没有使用API,请求将受限于没有API密钥的全局共享有限配额请求。有了一个,您将获得每天25,000个免费请求,并且您可以对您的网址进行签名以启用对额外配额的结算。在Python中,您可以使用https://github.com/allrod5/staticmaps-signature来包含您的API密钥和/或对您的URL进行签名。 – 2017-09-29 18:11:43