如何将 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 for android 将地图限制在一个国家/地区
Google Map API V3:如何将自定义数据添加到标记