谷歌地球(GoogleEarth,简称GE)集成了地理信息系统、遥感等功能,展示了全球范围内的卫星影像和三维地形等基础地理信息数据。谷歌地球几乎可以应用于各行业的GIS领域如智慧城市、厂矿、交通、港口、农业、文物古迹保护、环保、林业、海洋和城市规划等。
谷歌地球不仅提供了三维场景中的卫星影像和三维地形、地理信息,还提供了用于二次开发的插件和强大的三维场景与图件控制功能。谷歌地球二次开发主要基于Google EarthComAPI 和Google EarthWeb Plugin。前者的功能较弱,使用较少。后者提供了丰富的API,基于JavaScript脚本语言即可开发功能强大的应用软件,而且适合嵌入第3方的软件中。但遗憾的是谷歌公司于2016年停止了Google Earth API的服务,并封闭了所有有关Google Earth API的技术文档和应用实例资料。所以,对于未掌握Google Earth API的技术文档和资料的开发者而言,谷歌地球二次开发的难度大,甚至难以实现期望的功能。
为了帮助开发者二次开发谷歌地球在各行业中的应用,本文介绍一款“谷歌地球二次开发基础平台”,该平台已为开发者提供了大量通用的功能或模块,用户甚至不用编写代码也能使用该平台构建自己的三维场景(厂矿、电网、港口、视频监控集成)并与谷歌地球互动应用。免费下载的“谷歌地球二次开发基础平台”(单机版)适用于需要数字地球、三维场景地理信息支持的各行业信息系统进行嵌入谷歌地球的二次开发、测试和演示。
该开发平台具有其他使用Google Earth API开发的软件不具备的特殊功能:离线加载地球。使用Google Earth API开发的软件在启动谷歌地球时必须连接英特网(与谷歌服务器通讯),否则不能打开谷歌地球。但使用“谷歌地球二次开发基础平台”开发的系统只需要联网一次,将看过的地球区域数据自动下载到本机(也可以直接拷贝已下载的数据文件---这样就不需要联网),以后即可离线打开谷歌地球和查看已下载到本机的区域。“离线加载”功能对于一些重要系统的安全以及需要离线环境运行的系统是至关重要的。
一、平台运行环境与部署
平台的运行环境为:服务器的windows Server 操作系统或个人PC机的win7及其以上版本操作系统(64位或32位)以及XP系统,使用Web中间件IIS搭建网站。客户端需要IE8及以上浏览器的支持。
下载“谷歌地球二次开发基础平台”,解压到D:\wwwroot\power-127目录中,如下图:
系统部署:
开始 → 控制面板 → 系统和安全 → 管理工具→Internet 信息服务(IIS)管理器。在(IIS)管理器页面中,点击“网站”→ 点击鼠标右键,选择“添加网站”。在“添加网站”页面中,输入“网站名称”,如:power-127。物理路径选择“系统”软件所在的目录,如“D:\wwwroot\power-127”。
3、客户端加载系统
(1)安装谷歌地球(Google Earth)V7.1.1.1888版本
客户端加载运行系统之前,请自行从网络中下载、安装“谷歌地球”。建议安装谷歌地球(Google Earth)V7.1.1.1888版本软件,该版本软件安装后含有用于二次开发的Google EarthWeb Plugin(插件),而且软件较小,启动速度快。其他版本(包括最新版本的),文件较大,启动等待时间长,而且有些软件不含Google EarthWeb Plugin(插件)。
建议按照“谷歌地球二次开发基础平台”安装包中的安装说明和地址下载“谷歌地球”(Google Earth)V7.1.1.1888版本。解压、安装完成后,运行该软件,确认其可以正常启动运行,出现下图界面。
(2)连接系统
加载运行系统时,在安装了该系统的机子上打开IE(IE8 以上)浏览器,在浏览器地址栏中输入: http://127.0.0.1:8017/transfww2.htm, 其中:8017是系统配置的端口号。
进入系统页面
注意:用浏览器首次登录系统时,需要连接外网才能打开谷歌地球。通过浏览本系统构建的三维场景,自动下载谷歌地球在该三维场景中的地形数据和影像图片并自动保存在本机的内存中。此后,即可离线运行系统,系统自动从本机的内存中获取谷歌地球的信息。
二、谷歌地球二次开发基础平台
完成“电网三维场景机器人巡检系统”的部署、谷歌地球安装及在IE浏览器中输入: http://127.0.0.1:8017/transfww2.htm,即可进入系统页面。
有关本系统的使用操作方法,请参见系统软件中附带的用户使用操作手册,在此不作讲解。本文着重说明如何以本系统为基础,开发自己的应用软件。
该平台提供的样本“电网三维场景机器人巡检系统”以谷歌地球为二次开发平台,在谷歌地球中汇集了:发电厂、变电站、输电线路、杆塔等相关基础设施及其地理分布、三维场景展现、信息查询、实时监视等功能。鉴于多数开发者没有谷歌地球二次开发的技术和资料,运用该系统具有功能,将其引用或嵌入到自己的应用软件中,是一种最为快捷、高效的开发方式。
在着手程序开发之前,建议先参照本系统的使用手册,熟悉系统的各个功能模块及操作流程,这对理解功能函数接口会有很大帮助。
2.1 系统页面组成
“电网三维场景机器人巡检系统”页面如下图所示。有3部分组成:左侧为信息查询菜单区;中间上方为巡检机器人操控及视频显示区,中间下方为被选图件的信息显示区。右侧为三维场景显示区,右侧上方为工具栏,用于画线、导入模型和生成图件。
中间区是为系统维护(修改图件属性、位置以及控制图件等)所用,对于非维护人员,可以不显示出中间区的栏目。
该页面由系统文件根目录中的transfww2.htm文件生成,开发者可通过修改transfww2.htm文件或将其部分模块程序加到第3方程序中,即可形成自己的应用软件。
用网页编辑器打开transfww2.htm文件,开发者可以看懂页面构成及对应的语句。需要注意:
1)系统启动初始化:
2)定义页面左侧的树状图件菜单区:
3)定义右侧的三维场景显示区: 注:树状图件菜单与三维场景显示区是相互关联和互动的关系。 2.2 系统运行流程 系统启动后,首先从系统的georsc_ww目录中下载和加载系统的资源配置文件jsontree1.js,该文件定义了三维场景中需要加载的所有图件信息,并生成树状菜单(jsontree1.js文件的数据格式不要改动,否则会造成系统加载失败)。 如果安装了谷歌地球插件并且加载谷歌地球成功,在三维场景中显示谷歌地球并根据资源文件中的数据加载图件。加载过程因谷歌插件版本不同而等待时间不同。 图件加载完成后,即可通过树状菜单对三维场景中的图件进行信息查询。如在左侧菜单中点击“火电厂模型_1”,在右侧谷歌地球中自动聚焦到“火电厂模型_1”的中心,在中间信息区“三维场景图件属性”栏中自动显示该模型的名称、模型文件地址及模型定位坐标及方位等信息。有关信息查询操作方法,请参见系统的使用手册。 本系统已经将左侧的树状菜单、中间区的图件属性和右侧的三维场景显示区3者相互关联起来,开发者无需关注这方面的开发工作,只需注重三维场景的构建即可,从而大大减少开发工作量和成本,提高开发效率。 2.2 构建用户的三维场景 本系统软件提供了构建用户三维场景的基本功能和方法,而且提供强大的图件管理功能,开发者直接引用即可满足需要。包括改建自己的菜单、导入三维场景模型、图片及拼接、组合图件,构成用户的三维场景等。 注:完成用户三维场景构建后,必须保存左侧菜单(参见“菜单管理”),否则,重启系统后,所有更新内容都将丢失。 3.2.1 准备工作 在创建用户的三维场景之前,需要做好以下准备工作: 2.2.2 添加图件 三维场景是由地面地形、地面贴图或卫星影像以及地面建筑物模型组成。在谷歌地球中,已经提供了地面地形和地面的卫星影像,在此基础上,添加自己的地面贴图和地面建筑物模型即可构成自己的三维场景(如城市、厂矿、园区等)。 添加图件的功能键都在界面右上方的工具栏中,将光标放到工具栏中的图标上会显示该图标键的功能名称,如下图: 各种图件的添加方法基本相同,步骤如下: 开发者如何加载自己的贴图或模型?非常简单,方法如下: 对照页面文件transfww2.htm,可以找到页面工具栏中添加图件分别使用了2个函数: 添加模型函数: addModel0('模型文件名称'); 添加贴图函数: addmap('贴图文件名称') 功能描述: 这2个函数引用的模型或贴图“文件名称”是用户要加载的模型或贴图的文件名称,如模型文件:guanchang1.kmz和贴图文件:bdztu4.jpg,而且该文件加载地址必须在系统部署的物理路径中的”georsc_ww”文件夹中,否则系统将无法加载这些文件。 模型或贴图加载后,自动定位在当前三维场景页面的中央,用户可以通过修改图件属性功能,重新定位图件的位置和方向。 除了‘添加输电线路和杆塔’外,所有新增图件的名称都自动添加到左侧菜单栏的“新增图件”目录下。用户可以用鼠标左键将该目录下的图件名称拖拽(按住鼠标左键拖动)到其他目录中,从而构建自己的菜单。 由此可见,引用这2个函数,开发人员可以在工具栏或其他功能模块中设置加载任意模型和贴图的功能,无需编写大量复杂的代码及处理菜单与图件、属性间的关系。此外,工具栏中的画线、画面、添加标注点功能均可以直接引用。注:“巡检机器人”和“杆塔”是特种组合模型工具,需要专门订制。 2.2.3 图件属性及拼接 三维场景中添加图件后,在左侧菜单中点击图件的名称(如“视频点1-1”),即可聚焦到该图件的地点,同时在“三维场景图件属性配置”栏显示该图件的相关属性:图件名称、连接地址、中心坐标、方位等。修改图件属性,将改变图件的式样和位置。如: 图件名称:修改图件名称,将改变菜单中对应的图件名称; 连接地址:修改图件的连接地址,将改变图件的式样。如在菜单中点击“风电场_9”图件,图件连接地址为:georsc_ww/fengdian1.jpg。如果将地址改为:georsc_ww/guangfu1.jpg,点击“刷新图”按钮,则“风电场_9”图片变为“光伏电站”图件的图片。 中心坐标、方位:改变图件的中心坐标有2种方法,一种是修改中心坐标值,然后点击“刷新图”按钮。另一种方法是点击“点击图移动图件”按钮后,在三维场景图中用鼠标点击定位低端,点击之处即是图件移动的中心位置。如下图。 通过移动图件中心位置和方位,将多个图件(如:贴图、视频图像)拼接成一幅三维场景,实现同时缩放。例如,“变电站-旧金山”目录中的变电站地面图就是由3个图片拼接成的,如果用3个视频拼接而成,则用户看到的就是真实场景了。视频拼接或地面贴图拼接还可应用于勘探、矿山、林业、农业等领域。 2.3 菜单管理(树状菜单管理) 本系统提供了很强的图件菜单管理功能,包括图件分类(归属目录)、菜单点击与三维场景中图件及属性信息的自动关联,从而大大减少开发者的开发难度。 本节主要讲解: 菜单目录增减; 图件分类; 图件删除; 菜单保存。 2.3.1菜单目录增减 (1)新增菜单目录 用鼠标右键点击菜单栏目中任意一个目录或图件名称,会弹出右键菜单,选择“添加目录”选项即可在菜单的最下方生成一个“新增目录”,如下图: 新增目录的名称可以通过图件属性栏中的图件名称进行修改。 新增目录是空的,目录下没有图件名称。用户可以用鼠标选择其他目录中的图件名称,按住鼠标左键拖拽到新增目录中。多数情况下,新增的图件都列入“新增图件”的目录中,可从该目录中把图件名称拖拽到任何目录中。 (2)删除菜单目录 首先用鼠标右键点击菜单栏目中要删除的目录名称(使其被选中),在弹出右键菜单,选择“删除图件”选项,即可删除该菜单目录。需要注意:在删除菜单目录之前,应该检查一下该目录中是否有图件名称,如果有图件名称,先清空图件(删除或移到其他目录中),然后再删除目录,否则,该目录删除后,其目录下的图件将无法被选中来进行操作。在以后的版本中将改进:如果没有清空目录,将不能删除目录。 2.3.2 图件分类 图件分类的意义在于更方便地管理三维场景中的图件。其方法是把同类的图件放在同一个菜单目录中,方便查询和操作。因此,可以把菜单的目录名称作为图件的类别名称。如按照地点分类:将同一区域中的图件放在一个目录下;或建立报警目录,将所有出现报警的图件归到该目录之下,等等。 利用系统的图件名称拖拽功能,可以很方便地实现图件分类。只需要把图件名称拖拽(选中图件名称,按住鼠标左键拖拽)到对应的目录中即可。需要注意:本系统只允许出现二级菜单,即菜单目录为一级菜单,目录之下的图件名称为二级菜单。不允许出现三级及二级以上的菜单,如菜单目录下又出现菜单目录,或在图件名称的二级菜单下又出现图件名称的三级菜单。如果出现第三级图件名称不能保存而丢失。 2.3.3 图件删除 系统允许用户删除菜单中的图件名称,删除菜单中图件名称时,连同三维场景图中对应的图形一起删除,而且不能恢复。 删除步骤: 注意事项: 所有对系统的改动:包括图件的增减、图件属性的更改、菜单的变动,如果要将保留下来供以后打开系统时使用,都必须进行菜单保存的操作,否则,重新运行系统后所有的修改都消失。保存菜单,不仅仅是保存菜单的目录和图件名称,而是保存系统中所有图件的信息。 菜单保存步骤: 注意: 点击IE浏览器界面上方的“工具”,下拉菜单最下方选择“Internet选项”,点击“安全”页面,点击“Internet”图标,点击“自定义类别”按钮,在安全设置页面中,找到“对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本”的选项中选择“提示”。见下图。 保存到本机的配置文件自动保存在D盘根目录下,文件名称为jsontree1.js,必须用手工将该文件拷贝(或覆盖)到系统文件夹的georsc_ww目录中。