Google地球影像下载及导航系统是在Google Earth 5.2中文版本平台基础之上采用Visual Studio C#(为方便使用采用.Net Framework 2.0编译)调用Google Earth COMAPI开发而成,主要用于Google影像自动下载、拼接和配准,另外,通过外接GPS可以实现基于Google影像的导航。系统主要功能如下:
- 坐标文件或无人机POS文件自动生成KML;
- Google影像自动下载、无水印拼接、自动配准,支持Google历史影像 下载和Google影像批量下载;
- 基于Google地球的GPS实时定位导航,同时记录导航轨迹。
1、Google影像下载功能
1.1 Google影像下载方式介绍
Google影像下载方式通常有2种:
1)一种是将Google影像瓦片数据下载到本地,然后进行拼接,该方式下载速度快,但是有些需要翻墙或者存在下载端口被禁的风险。目前市面上的Google影像下载器大都是基于该方式,有不少软件确实做的非常好,不过人家是商业软件,许多功能通常是收费的;
2)另一种是基于Google Earth Com API的开发方式,对Google影像进行截图然后拼接,该方式下载速度相对较慢,且只适合下载高分辨率影像,但不需要翻墙且不存在端口被禁的风险。
本软件是基于Google Earth Com API的方式开发,下载速率相对较慢,但也能较好的满足工作需要。另外,也提供大范围(如省级或国家级)的影像下载策略。
1.2 Google影像下载、拼接及配准实现
基于Google EarthCOM API开发下载Google影像主要是通过对Google地球影像截图并拼接的方式实现,从技术上而言存在2个难点:
1)一个是Google地球影像截图边缘会存在水印信息,需要将水印去掉,然后还能进行准确拼接;
2)由于Google地球影像截图次数受限制(Google地球软件操作约500次后,反应速度会很慢,需要重启Google地球软件),且截图太多也不便于影像拼接。因此,需要尽可能让单幅影像下载到更大的范围,同时可以完成拼接,以确保最大下载速率。
下面针对上述2个问题逐一解决:
Google 地球影像截图时,影像截图边缘会存在水印、状态栏和导航栏等多余信息,这部分信息不能用于影像拼接,需要裁切掉,根据这些多余信息的分布情况,裁切掉影像上下左右各1/8比例的区域,保留影像中间部分。 以上是对截取的单张Google影像进行的处理,但由于单张影像截取的范围太小,通常无法满足工作需要。因此,需要采取一定的方式截取多张Google影像并将这些影像拼接成一整幅影像,这样才能满足工作需要。
将Google地球影像窗口缩放到需要下载的区域(若要下载0.5m分辨率影像,单幅最大下载范围可以达到6km*10km),采用一定的方式将单幅影像区域分成22行*22列共484个小区域(第5级下载效率最高),分别截取每个小区域的影像,并按照相应的排列方式将所有的小区域影像拼接成一幅完整的影像。
将已下载的484个小区域影像拼接成单幅JPG格式的影像后,再根据该下载范围四个角点经纬度坐标(影像下载时可以直接读取)可对该影像进行自动配准、定义坐标系或投影。
JPG格式的影像对应的地理配准文件和空间参考文件分别为jgw文件和JPG.aux.xml文件(这里不详细介绍这两个文件的生成步骤)。这两个文件生成后与JPG文件放在同一目录下,用ArcGIS等软件打开JPG影像,即可查看JPG影像的地理位置信息。
1.3 Google影像批量下载分幅计算
以上通过截图和拼接的方式可以下载单幅Google影像,也可以下载Google历史影像。若要下载上万平方公里的0.5m分辨率Google影像,则需要进行Google影像批量下载,Google影像批量下载前,需要先对下载范围进行分幅计算。
将Google地球缩放到整个待下载区域,通过获取下载区域横向和纵向覆盖距离,可以计算下载区域共需要分成多少幅单幅影像,并将每幅单幅影像下载范围生成单个的KML文件。
Google影像批量下载时,将分幅后的多个单幅影像范围KML文件加载到下载列表中,通过每个KML文件定位到各幅单幅影像下载范围。考虑到Google Earth截图访问次数限制,每下载完一幅影像,软件控制重启一次Google Earth,以确保下载效率。同时,若程序在下载过程中出现错误而终止,也可以根据下载完成情况,只加载未下载的KML范围,继续下载。
1.4 Google影像批量下载实例
以广东省为例,介绍Google最高分辨率影像批量下载流程。广东省陆域面积约18万平方公里,影像下载范围包括了部分邻省范围和部分海域范围,实际影像下载面积约30万平方公里。根据影像分幅计算,将整个广东省影像下载范围分成了4800个单幅影像区域(每个区域大小为6km*10km,可以确保下载到最高分辨率的Google影像),并对应生成了4800个KML范围文件。
经测试,在稳定的网络环境下,单幅Google影像下载需要8-10分钟时间,一台计算机24小时连续下载,每天可以下载约150幅影像。因此,一台计算机下载整个广东省影像需要约1个月时间,但可以采取多台计算机同时下载的方式,下载效率能成倍提高。
Google影像下载完成后,再使用影像批量拼接工具对下载的Google影像进行批量拼接和配准。采用一台普通的图形工作站,1分钟可以拼接并配准完成6幅Google影像,整个区域影像拼接完成需要不到1天的时间。
2、基于Google影像的GPS导航功能
GPS导航在日常的工作生活中应用非常广泛,比如手机版的百度地图等移动导航软件给日常生活和出行带来了很多便利,基于Google影像的导航主要是用于普通移动导航软件无法有效工作的场景,比如沿海或者偏远地区的导航定位。
近年来,基于Google影像的移动导航软件也出现了很多,比如奥维互动地图,可以加载Google影像进行导航定位,还可以缓存Google影像,该软件提供的免费功能基本可以满足海洋外业调查需求。
由于本人从事海洋调查工作时,基于Google影像的移动导航软件还未出现,至少没有免费版,所以基于Google Earth COMAPI开发了一款基于平板电脑或笔记本电脑的Google影像导航软件。
该软件建议使用自带GPS模块的外业平板电脑(Windows系统)使用,比如下面这款外业平板,不过比较贵。
也可以使用普通的笔记本电脑,通过外接USB接口的GPS进行导航定位。
接入GPS后,进行端口测试,确保GPS端口和波特率设置准确。
开始导航后,导航面板显示基本的导航信息。
同时记录导航轨迹,导航轨迹以KML文件格式存储。
软件免费下载请关注微信公众号。