您的位置:GIS门户网 GIS开发 正文
GIS网内容搜索
GIS网热门内容
GIS网推荐内容
GIS网最新内容
提出意见和建议

GoogleEarth二次开发难点和技巧

GIS门户网提示:本文章共1879字,分2页,当前第1页,快速翻页:
 

一、 基本步骤

1、安装GoogleEarth程序

2、对GoogleEarth activex控件进行注册(googleearth.exe /regserver)

3、在开发环境中引用googleearth activex


二、 开发方式

针对GE的开发有两种方式,一种是基于GE的com API,一种是基于KML。基于 Com API的开发方式主要用来控制GE的视角、实现动画效果,而基于KML的开发方式主要用来生成地理要素,实现数据的动态更新等。在实际应用中,需要结合这两种开发方式,这样才能得到比较理想的效果。

1、 基于ComAPI的开发

GE 公布的API目前是1.0a版,数量比较少,所能实现的功能也不多,在实际开发中主要用来加载KML数据、控制视角和实现动画播放。

A、 加载KML数据

IApplicationGE. OpenKmlFile(kmlFilePath),加载指定的kml文件到GE中;

IApplicationGE.LoadKmlData(kmlData),加载kml文本流到GE中

B、 控制视角

IApplicationGE. SetCamera(ICameraInfoGE ,double ),设置GE当前的视角,第一个参数为视角参数,第二个参数为当前视角飞到这个视角的速度(取值范围为0--5);

IApplicationGE .SetFeatureView(IFeatureGE,double),从当前视角飞到指定要素处的视角,第一个参数为指定的要素,这个要素的视角由KML中的<LookAt>标签来决定,第二个参数为飞行速度(取值范围为0—5)。

C、 动画效果

GE中实现动画效果有两种方法,第一种是通过KML中的<Annimation>标签来实现,这个标签内部放置的是每一帧所代表的视图,第二种方式是通过API来实现某个父要素下的所有子要素的视图的轮流切换。

ITimeIntervalGE.Play() 开始播放<Annimation>标签中的帧

ITourControllerGE. PlayOrPause () 播放某个父要素下的子要素,或暂停播放

2、 基于KML的开发

GE实际上就是一个浏览器,被浏览的数据是KML,KML和GML、SVG等表示矢量图形的标准类似,不过他所描述的是三维的数据结构,可以认为KML是基于XML的一种三维矢量图形标准。

KML的结构组成可以参考(
http://code.google.com/apis/kml/documentation/kml_tags_beta1.html),从其结构图中可以看出,KML描述地物的方式和通用的GIS相类似,主要由要素、样式、视角、动画等部分组成。下面我说明KML中几个比较有难度的技术。

A、 LOD技术

LOD(Level Of Detail)地图分级加载技术,利用LOD技术可以在PC机上浏览海量的影像地图数据。有GIS平台使用经验的都知道,我们可以设置某个图层在某个比例尺范围之内显示,小于或者超过这个范围则不显示。LOD技术非常类似,比如说,在视角高度很大的时候,我只加载1:5000W的影像数据,在视角高度很小的时候,我只加载1:1000的数据,这样的话,视角高度越低,我们所能看到的地物越详细。

在KML中用来实现LOD技术的是<Region>标签,这个标签定义了在什么范围内,在什么像素级别范围内显示某个要素。

B、动态数据更新技术

在GPS车辆监控系统中,需要对实时数据进行更新。利用KML中的<NetworkLink>和< refreshMode>标签可以实现数据的实时更新。将refreshMode设置为onInterval模式,并在< refreshInterval >中设置间隔时间,那么GE将间隔指定的时间来刷新一下<href>标签中的链接地址,这个链接地址可以是本地磁盘上的一个文件,也可以是一个网络链接。(可以参照gpsrealtime.kml来理解)

C、 动画播放技术

KML中的< TimeSpan >或者< TimeStamp >标签是用来控制动画播放的,< TimeSpan >或< TimeStamp >都必须包含在在一个要素标签内,表示的是在某个时间点上,GE的视图转到当前要素标签所规定的视图上,并完成相应的动作。因此每一个包含时间戳标签的要素标签都表示动画过程中的一帧。(可以参照trackreplay.kml来理解)
 

收藏本页:

点这里复制本页地址发送给您QQ/MSN上的好友
相关文章

实验:居心叵测的Chrome?
How Google Map Works
VC++中的Win32 Application和Win32 Console
在VC中怎样实现软件的注册机制
(转)如何使应用程序只运行一个实例
如何实现API钩子
ArcView GIS 应用与开发技术(3)-地理要素
ArcView GIS 应用与开发技术(2)-Tables
ArcView GIS 应用与开发技术(1)-View&Th
win2003_iis6服务器设置排错解答
程序人生
SAAS,GIS软件的未来?
地图坐标与屏幕坐标的转换
google map api中的事件名称和描述
MapXtreme产品介绍
asp读取和写入xml简单教程+实例

相关评论


GIS门户网提示:本文章所属分类:首页 GIS开发
GIS

GIS