0

我正在构建一个 Rails 应用程序,并尝试将多个 Google 静态地图放入视图中。这些地图将始终显示损坏的图像占位符,除非它在以下情况下起作用:

- 使用 firebug 获取地图图像的 src URL -
将 URL 粘贴到另一个浏览器选项卡
中 - 使用 Google 静态地图刷新我的应用程序页面
- 然后我可以查看我粘贴的 URL 的静态地图,但没有其他的,只有约1分钟。

然后,我重复此过程的页面上的任何地图都可以查看大约 1 分钟。然后大约 1 分钟后,如果我刷新页面,该地图将恢复为损坏的图像占位符。

我的应用程序中的示例 URL(没有我的 API 密钥)是:

http://maps.googleapis.com/maps/api/staticmap?center=Paris%2C+France&zoom=13&size=600x300&maptype=roadmap&sensor=false&markers=color:blue|label:A|Paris%2C+France

将其粘贴(或单击)到您的浏览器中,您会看到它有效。我将此带有 API 密钥的URL 粘贴到我的浏览器中,它可以工作,并且我的应用程序将在有限的时间内显示静态地图,然后它会再次被破坏。如果我粘贴没有我的 API 密钥的 URL ,则此过程不起作用。这就像在另一个浏览器选项卡中查看地图以某种方式将其暂时缓存在我的浏览器中,然后它将在我的应用程序中运行......但它会在一分钟内中断。还没有找到任何其他方法可以使地图图像可见。

任何想法为什么会发生这种情况?

编辑:

这非常奇怪。为了诊断这一点,我复制/粘贴/保存了包含损坏的地图图像的应用程序页面源,并将其放在 World 中的远程服务器上。在这个新的完全静态的页面中,我得到了相同的结果:我看到了损坏的占位符图像,谷歌地图图片应该在哪里。但是在我复制图像的 src URL 并将其粘贴到另一个浏览器选项卡中后,我可以返回静态页面,刷新并只显示该地图图像。

更奇怪的是(也许?),它也出现在我的本地主机应用程序上。它还显示在我保存为 HTML 文件的应用程序页面源的静态本地副本/粘贴上。

所以,并不是说这一定是它,但它似乎是一个浏览器缓存问题。无论视图页面在哪里表示,无论是本地的还是远程的,也无论是动态生成的还是静态的 HTML,原始行为都保持不变。

4

1 回答 1

0

也许您没有考虑到推荐人是显示静态地图的人。检查这些示例:

  1. https://developers.google.com/maps/documentation/static-maps/styling?hl=nl中显示的静态地图:引荐来源网址是https://developers.google.com
  2. 你抓住这个链接(已经在项目符号 1 的 URL 中)https://maps.googleapis.com/maps/api/staticmap?size=512x512&zoom=15&​​center=Brooklyn&style=feature:road.local%7Celement:几何%7Ccolor:0x00ff00%7Cweight:1%7Cvisibility:on&style=feature:landscape%7Celement:geometry.fill%7Ccolor:0x000000%7Cvisibility:on&style=feature:administrative%7Celement:labels%7Cweight:3.9%7Cvisibility:on%7Cinverse_lightness: true&style=feature:poi%7Cvisibility:simplified&key=YOUR_API_KEY并将其粘贴到浏览器中:引荐来源网址是您的公共 IP。

因此,如果链接在任何浏览器中都不起作用但在确定的网页中起作用,这是正常的。当授权推荐人只是网络的主机时,就会发生这种情况。

还要考虑您可能会达到每天显示的免费限制。

于 2016-08-15T10:23:15.667 回答