2011-01-06 157 views
2

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

虽然Flickr现在为您提供IPB代码来显示图片并直接链接到其网站上的照片网站,但我的应用程序也可以选择嵌入标题,说明,选择EXIF数据,位置信息等。进入IPB论坛的职位。

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

的问题是,图像URL我是以下形式(包括IPB [IMG]标签):

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

哪个示出此示例图像(在实践中,图像尺寸为用户可选):

alt text

然而,一些IPB论坛似乎不支持dyamic图像的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应用程序:http://flickr.argote.mx/(我在这里提到的更改仍在本地开发服务器上)。

回答

4

有两种类型的解决方案,据我可以看到:

  1. 您创建一个代理服务器从谷歌下载图像和服务于它漂亮的URL发送到客户端。缺点是你将不得不通过你的服务器处理高流量(我不太了解你的项目你需要决定性能)

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

+1:您可以创建一个漂亮的URL的服务器端脚本来重定向到谷歌的网址,但问题是,你永远不知道在不同的浏览器将如何处理它。我想他们通常不会在页面内部追踪图像的URL。

+2:向谷歌支持好的网址;)

希望有所帮助。

+0

对于1,我不确定Google是否允许将地图图像存储在我的服务器上,因为它们拥有它们的版权。对于2,你能否通过创建我自己的BB代码来澄清你的意思? +1是有意义的,我只是想知道是否有一个更简单的方法来做到这一点,并且你提到URL后面的浏览器似乎很重要,如果没有其他答案出现,我可能会采取这种做法。 +2可能是最后一招:P – Argote 2011-01-06 10:34:34

+0

Yepp,解决方案1无可争议,因为所有流量都会通过您的服务器,而Google会迅速禁止您。我并不是说要存储图片只能下载并传递给客户端。 2:据我可以看到[IMG] url [/ IMG] BBCODE没有正确翻译成导致问题。我没有使用IPB的经验,但使用PHPBB和PHPBB,我可以创建一个新的BBCODE,如[IMGMAP] url [IMGMAP],它可以正确处理翻译。 – Aston 2011-01-06 11:01:51

1

由于阿斯顿的建议都不存在,也许您可​​以设置一个简单的脚本,将请求重定向到Google地图图像(而不是代理)?

因此,您可以将类似http://my-simple-script.tld/lat,lng的文件重定向到正确的Google Maps静态图片网址。

1

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

例如,bit.ly有REST API.它可以让你从PHP内作出这样的电话:

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

回来,你可以在BB代码使用bit.ly网址。

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

相关问题