如何将 google image map API 图片保存到我的服务器

Posted

技术标签:

【中文标题】如何将 google image map API 图片保存到我的服务器【英文标题】:How do I save the google image map API picture to my server 【发布时间】:2012-03-10 15:34:56 【问题描述】:

是否可以将谷歌地图图像 API 作为图像保存到我的服务器?

背景: Google 地图图像 API 正在生成所需位置的图像。每次我调用外部 URL 时。我可以在我的服务器上将地图图像保存为图像(png、gif)吗?这将提高我的网页速度。我尝试使用 curl 但无法复制图像

请求的网址 http://maps.googleapis.com/maps/api/staticmap?center=15719+OAKLEAF+RUN+DRIVE%2CLITHIA%2CFL%2C33547%2CUS&zoom=8&size=150x100&markers=color:blue|label:S|11211&sensor=false

【问题讨论】:

请务必阅读服务条款,因为您所描述的内容很可能违反这些条款。 @Mano Marks 是的。我们可以为每个用户请求最多 1000 个查询 我更关心你将它们保存到你的服务器 【参考方案1】:

查看适用于移动设备的 Maps API。在那里,您将收到一个图像而不是 html 地图。

【讨论】:

【参考方案2】:

你可以试试这样的:

<?php
$image = file_get_contents('http://maps.googleapis.com/maps/api/staticmap?center=15719%20OAKLEAF%20RUN%20DRIVE,LITHIA,FL,33547,US&zoom=8&size=150x100&markers=color%3ablue%7Clabel%3aS%7C11211&sensor=false'); 
$fp  = fopen('ae.png', 'w+'); 

fputs($fp, $image); 
fclose($fp); 
unset($image);
?>

【讨论】:

这个答案对当前的 API 仍然有效吗?我正在尝试对来自 Staticmaps API 的图像进行 base64 编码,而 file_get_contents() 总是返回 false。【参考方案3】:

您可以使用 file_get_contents 轻松读取该网址

sn-p 这个会是

$url='http://maps.googleapis.com/maps/api/staticmap?center=15719+OAKLEAF+RUN+DRIVE%2CLITHIA%2CFL%2C33547%2CUS&zoom=8&size=150x100&markers=color:blue|label:S|11211&sensor=false';

file_put_contents('filename.png',file_get_contents($url));

【讨论】:

【参考方案4】:

这真的很简单

随便用

if(@copy('http://maps.googleapis.com/maps/api/staticmap?center=15719%20OAKLEAF%20RUN%20DRIVE,LITHIA,FL,33547,US&zoom=8&size=150x100&markers=color%3ablue%7Clabel%3aS%7C11211&sensor=false', '/where-u-want-to-save/your-given-name.png'))
echo "image-saved";
else
echo "failed"; 

图像总是以 png 格式返回 您可以通过 lat lng 值或使用 php time() 函数为图像指定一个唯一名称

【讨论】:

&zoom=13&size=500x400&maptype=hybrid&markers=color:red&sensor=false&format=jpg-baseline 如何也打印标记? @dstonek 因为 API 发生了很大变化,请查看developers.google.com/maps/documentation/javascript/examples/… 我修复了使用 ImageMagick 添加自定义标记的问题。谢谢。

以上是关于如何将 google image map API 图片保存到我的服务器的主要内容,如果未能解决你的问题,请参考以下文章

Google Maps Api v3,自定义集群图标

Google Maps API v3:如何将缩放级别和地图中心设置为用户提交的位置?

如何使用 google maps api for android 将地图限制在一个国家/地区

Google Map API V3:如何将自定义数据添加到标记

Google Maps API v3:如何动态更改标记图标?

如何在 JavaFX 桌面应用程序中使用 Google Maps API?