【问题标题】:How can I get a static URL to a map image using the Google Static Maps API?如何使用 Google Static Maps API 获取地图图像的静态 URL?
【发布时间】:2011-01-06 08:50:53
【问题描述】:

我正在制作一个 Web 应用程序(仍处于“测试版”),它使用 Flickr API 来获取特定 Flickr 用户的照片信息,并生成 IPB 代码以发布他/她的任何图像。

虽然 Flickr 现在为您提供 IPB 代码以显示图像并直接在其网站上链接回照片网站,但我的应用程序还可以选择嵌入标题、描述、选择 EXIF 数据、位置信息等IPB 论坛的帖子。

我最近添加了使用 Google 静态地图 API 将照片地理位置数据的 Google 地图图像集成到帖子中的选项。

问题是我拥有的图片网址格式如下(包括IPB[IMG]标签):

[IMG]http://maps.google.com/maps/api/staticmap?zoom=16&size=600x600&maptype=hybrid&markers=19.387687,-99.251732&sensor=false[/IMG]

显示此示例图像(实际上图像大小是用户可选择的):

但是,一些 IPB 论坛似乎不支持动态图像 URL,这会给我一个损坏的图像,我想替换

[IMG]http://maps.google.com/maps/api/staticmap?zoom=16&size=600x600&maptype=hybrid&markers=19.387687,-99.251732&sensor=false[/IMG]

类似的东西

[IMG]http://maps.google.com/maps/api/staticmap/map0000001.png[/IMG]

应该得到所有 IPB 论坛的支持。提前感谢您的帮助。

如果您有兴趣,可以在这里找到我的 Web-App 的最新“发布”版本:http://flickr.argote.mx/(我在这里提到的更改仍在本地开发服务器上)。

【问题讨论】:

    标签: javascript image api google-maps static


    【解决方案1】:

    据我所知,有两种解决方案:

    1. 您创建一个代理服务器以从 Google 下载图像并将其通过漂亮的 URL 提供给客户端。缺点是您必须通过服务器处理高流量(我对您的项目了解不多,您必须决定性能)

    2. 您创建一个特殊的 BBCODE 来处理您的 URL,您可以在任何 IPB 论坛上使用它

    +1:你可以创建一个带有漂亮 URL 的服务器端脚本来重定向到 Google URL,但问题是你永远不知道不同的浏览器会如何处理它。我想他们通常不会关注页面内图片的 URL。

    +2:要求 Google 支持漂亮的 URL ;)

    希望对您有所帮助。

    【讨论】:

    • 对于 1,我不确定 Google 是否允许将地图图像存储在我的服务器上,因为它们拥有它们的版权。对于 2,您能否通过创建我自己的 BB 代码来澄清您的意思? +1 是有道理的,我只是想知道是否有更简单的方法可以做到这一点,并且您提到的关于 URL 后面的浏览器的内容似乎很重要,如果没有其他答案出现,我可能会选择这个。 +2 可能是最后的手段:P
    • 是的,解决方案 1. 没有问题,因为所有流量都会通过您的服务器,而 Google 会迅速禁止您。我并不是要存储仅下载并传递给客户端的图像。 2:据我所见, [IMG]url[/IMG] BBCODE 未正确转换为导致问题的 。我没有使用 IPB 的经验,但是使用 PHPBB 和 PHPBB 我可以创建一个新的 BBCODE,例如 [IMGMAP]url[IMGMAP] 来正确处理翻译。
    • 1 的意思是我需要图像可以永久访问(因为它将成为论坛帖子的一部分,有人可以在几个月内查看)。至于 BB 代码,这是我正在创建的一个应用程序,用于发布到不同的论坛。我不控制上述论坛,让他们都实施我的标签至少很难说。
    • 所以只有 +1 解决方案可以工作。我将在相关论坛中编写一个简单的测试和/或创建一个问题。我真的很感兴趣,请在您了解更多信息后尽快让我更新:)
    【解决方案2】:

    您应该能够使用 URL 缩短服务,只要该服务支持简单的 301 重定向到图像资源。您必须尝试使用​​哪些。

    例如,bit.ly 有一个REST API.,它允许你在 PHP 中进行这样的调用:

    http://api.bitly.com/v3/shorten?login=abc&apiKey=123&longUrl={myurl}&format=json 
    

    返回一个可以在 BBCode 中使用的 bit.ly URL。

    编辑:根据this JSFiddle,这种方法是有效的,至少在Chrome和IE8中是有效的。它仍然需要跨浏览器进行严格的测试。

    【讨论】:

    • 这似乎是个好主意,我回家后试试。唯一的问题是一些论坛将nofollow应用于链接,这可能是一个问题......
    • @Argote 为什么会有问题?不确定我是否遵循(双关语:)
    • 我脑子里乱七八糟的。主要是因为这在我试图将其发布到的论坛上显示为警告。我的意思是某些论坛没有关注该图像。不知道为什么。
    • @Argote mmmm,所以带有图片 URL 的 BBCode 没有被转换为 <img> 标签?
    【解决方案3】:

    既然 Aston 的两个建议都不可行,或许您可以设置一个简单的脚本,将请求重定向到 Google 地图图像(而不是代理)?

    因此,您可以使用 http://my-simple-script.tld/lat,lng 之类的内容将该脚本重定向到正确的 Google 地图静态图片网址。

    【讨论】:

      猜你喜欢
      • 2020-08-05
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      相关资源
      最近更新 更多