【问题标题】:How to batch download large number of high resolution satellite images from Google Map directly?如何直接从谷歌地图批量下载大量高分辨率卫星图像?
【发布时间】:2013-01-16 00:50:29
【问题描述】:

我正在帮助一位从事卫星图像分析项目的教授,我们需要将 800 张图像拼接在一起,以 8000x8000 分辨率从 Google Map 中的每张图像拼接到一个正方形区域,可以一张一张下载它们,但是我相信那里必须是编写批处理脚本的一种方式。

这里我想问一下如何使用shell或python脚本来实现,如何通过google maps url下载图片?

以下是网址的示例:

https://maps.google.com.au/maps/myplaces?ll=-33.071009,149.554911&spn=0.027691,0.066047&ctz=-660&t=k&z=15

但是我无法从中分析图像直接下载链接。

更新:

其实我已经解决了这个问题,但是由于谷歌的意图,我不会发布这样做的方法。

【问题讨论】:

  • 我尝试在 google maps api 上找到一些东西,但似乎我无法使用该 api 执行此操作,我在 git hub github.com/linuxexp/Google-Maps-Downloader/blob/master/maps 中尝试了一个脚本,但它不起作用,并且url 链接到印度谷歌。我确实搜索了很多软件,但似乎唯一有用的是商业软件。
  • 我建议您更仔细地查看您找到的 github 项目。这至少是一个开始的地方。没用怎么办?你收到错误了吗?
  • 显然该项目不再工作,因为 kh.googl.com 不再可用。除了受限的静态地图 API 之外,我们目前没有办法公开图像 url

标签: c++ python google-maps shell url


【解决方案1】:

你试过Google static maps API吗?

您会收到 25 000 个免费请求,但您的尺寸限制为 640x640,因此您需要在更高的缩放级别下执行约 160 个请求。

我建议这样下载图片:Downloading a picture via urllib and python

起始网址:http://maps.googleapis.com/maps/api/staticmap?center=-33.071009,149.554911&zoom=15&size=640x640&sensor=false&maptype=satellite

【讨论】:

  • 谢谢,刚刚尝试了这个静态地图api,但是为了覆盖我们想要的区域,如果640x640是上限,我们必须精确计算坐标,但这会导致偏差,此外,标签的事情也很烦人。也许唯一的方法是使用 maps.google.com
  • @tomriddle_1234 不要忘记删除 Google 徽标可能违反服务条款。也许您最好直接从 DigitalGlobe 或 GeoEye 等购买数据?
  • 我看到人们可以直接从谷歌地图获得 8k 分辨率的图像,如果我弄清楚了,我会在这里发布。
  • 问题解决了,不需要下载 640x640 和拼接,有办法从谷歌地图抓取任意分辨率的图片。
  • @tomriddle_1234 酷!请将此方法作为答案发布,然后接受它,以便其他人也可以从中受益:)
【解决方案2】:

很久没解决问题了,抱歉耽搁了。

我已将我的代码发布到 github here,请按您喜欢的方式加星或分叉 :)

这个想法是使用一个非常高分辨率的虚拟网络浏览器来加载谷歌地图页面,然后进行页面捕获。缺点是每张图片周围都会有google符号,解决方法是对每张图片的分辨率进行过采样,然后使用拼接技术将它们粘在一起。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    相关资源
    最近更新 更多