google earth 开发小测试(一)

         最近要完成一个小项目,设计到google earth 的二次开发。简单的说就是实时导航,根据获取到的GPS信息来定位目标点。之前写过一个 google earth 的"hello world" 即简单的调用GE(google earth)COM组件,在自定义程序中打开google earth 程序。

        推荐初学google earth 开发博客 http://www.cnblogs.com/wpwen/archive/2009/02/06/1385570.html  写的比较详细。

        这里我们来研究一下google earth 相关API了(http://earth.google.com/comapi/index.html),看它的API,类也不多,主要有以下五个类:
 IApplicationGE   主类,基本操作都在这里,比 KHInterface 更非丰富,但少了两个重要的函数,CurrentView(当前的视角),SetView(设置视角,比如打开GE时可以定位到指定的视角)

IFeatureGE KML的标签类

IFeatureCollectionGE 标签集类,是 FeatureGE 集合。

IViewExtentsGE (只读)边界集类,可以获得当前屏幕内四个边的经纬度值。

ICaremaInfoGE 拷屏类,但目前没啥大用,黑白照片。

此外还有几个比较重要的类:

AnimationControllerGE   针对TimeStamp时间轴的,可以播放、暂停等。

PointOnTerrainGE   根据屏幕的点获得的经纬高度值就放在这个类里,可以看作一个数组。

SearchControllerGE   查询GE内置地址库的查询类(不是查KML文件的)

下面我们针对关键类做功能介绍:

 IApplicationGE 类 

   函数名: SetCameraParams

   功能   : 按指定经纬度定位GE窗口的中心到此位置上,而高度,视线范围等则可以用来调整窗体视觉(离地多高,倾斜多少度观看等)。
          SetCameraParams  ( 
            double  lat,
            double  lon,
            double  alt, 
            AltitudeModeGE  altMode, 
            double  range, 
            double  tilt, 
            double  azimuth, 
            double  speed  
                   ) 
 lat  纬度 范围(-90 , 90)
 lon  经度 范围(-180,180)
 alt  高度(米)
 altMode  高度模式(用来定义高度起始点, AltitudeModeGE类中有两种模式)
 range  视线范围,GE视线与目标点距离。
 tilt   视野倾斜度(0,90) 当为0是即垂直观看。
 azimuth  方位角
 speed   速度(参数值必须大于0,当值大于5时,GE将不做平移等过渡效果)。

  注: 和这个函数相似的函数是 SetCamera 不同之处在于SetCamera 的参数是 ICameraInfoGE 对象。

       SetCamera ( [in] ICameraInfoGE camera,
[in] double  speed  
  )

 

函数:  SaveScreenShot

功能: 截取当前图像 

 fileName: KML文件指定路径

suppressMessages ; 消息参数,如果为true 则忽略GE加载文件时的出错消息,否则反之。

 

函数:LoadKmlData

功能:从字符串string中加载 KML文件,当然string 中包含的是完成可行的KML文件信息。

LoadKmlData ( [in] BSTR *  kmlData  ) 

 

 函数:   GetFeatureByName

 功能: 从加载后的KML中,或者当前GE中的地标或者路径等 IFeatureGE类具体实例中返回第一个符合指定名字(name,KML文件中的一个标记)的IFeatureGE

GetFeatureByName ( [in] BSTR  name,
[out, retval] IFeatureGE **  pFeature  
)

SaveScreenShot ( [in] BSTR  fileName,
[in] long  quality  
)

fileName 保存图像的地址

quality  保存图片的质量(0,100)越高效果越好

函数:OpenKmlFile

功能:打开指定KML文件,然后GE会自动定位到此KML文件指定的位置,至于KML文件格式后续会讲。

OpenKmlFile ( [in] BSTR  fileName,
[in] BOOL  suppressMessages  
)

posted @ 2010-01-25 22:34  p-boy  阅读(996)  评论(1编辑  收藏  举报