我有一个基于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 [] dict是谷歌地图搜索的回复。这会生成一个完全有效的静态地图网址:
<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>
上面的图片网址是在搜索“英国诺丁汉”之后。如果您访问该地址,您可以看到它按预期显示,正确的大小和一切。但是,在页面上(您可以在spare -wheels.appspot.com/searchlocation上查看,虽然您需要连接您的Facebook帐户才能使用它),但图像不会显示。 HTML源代码看起来很好:没有明显的编码问题或类似的东西。我看不出有什么问题。有什么想法吗?
由于
本
编辑:经过一些测试后,我发现地图有时有效,但大部分时间没有,当他们工作时,他们通常会在刷新后停止工作答案 0 :(得分:3)
不推荐使用Google Maps API v1。关于免费静态地图使用不再需要API密钥的通知可能仅对使用Google Maps API V2的应用程序有效。
包含您的引用者的浏览器请求被403拒绝。因此,为什么它会在您的浏览器上显示损坏的图像图标。
切换到v2网址,或在网址中提供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?
=&gt; /maps/api/staticmap?
sensor=false
markers
从52.955115,-1.149172,midreda
更改为size:mid|color:red|label:A|52.955115,-1.149172
使用上述所有内容,我会使用红色标记正确显示地图,并确保Google将您的请求识别为V2请求。