1 / 22
文档名称:

Google Earth COM API学习笔记.doc

格式:doc   大小:773KB   页数:22页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Google Earth COM API学习笔记.doc

上传人:neryka98 2017/12/17 文件大小:773 KB

下载得到文件列表

Google Earth COM API学习笔记.doc

相关文档

文档介绍

文档介绍:Google API
1. API Classes
Here are the classes, structs, unions and interfaces with brief descriptions:
2. IApplicationGE接口
是Google Earth API开发中最重要的一个接口,通过该接口可以控制Google Earth程序的开启、关闭、获取地图窗口的句柄、操作主窗体句柄,还可以进行获取地图视场照相机对象、获取Google Earth版本号、转换坐标等一系列复杂操作。它是基于Google Earth API程序开发的基础。
初始化
打开Google Earth程序,首先要登录远程的Google地图服务器,Google Earth会在本地与服务器之间打开一个会话通道,然后等待十多秒钟之后,才能看见蓝黑色的地球。通常情况下,进行Google Earth API的二次开发时,自己的程序也需要走这些步骤。
如何才能得知Google Earth已经注册好呢?Google 的API中提供了几个反馈Google Earth是否已经登录到服务器上注册完毕的函数,通过这些函数,可以在Google Earth初始化之后执行自己的业务代码,操作Google Earth完成相应动作。而没判断是否初始化结束就直接操作Google Earth,可能会导致错误。
这些与初始化相关的设置共有4个:IsInitialized、IsOnline、Login、Logout。
视场相机设置
IApplicationGE接口提供了一个获得"视场照相机"的对象的方法GetCamera和SetCamera。
SetCameraParams为调整当前Google Earth的视场焦点的各个参数,无须重新定义照相对象:
ApplicationGEClass appGE = new ApplicationGEClass();  
…… 
private void SetCamParm()  
{  
    double tmplat, tmplng, tmpalt, tmprange, 
tmptilt, tmpAzimuth, tmpSpeed;  
    tmplat = ;     //焦点纬度 
    tmplng = ;   //焦点经度 
    tmpalt = 0;        //焦点高度 
    tmprange = 500;   //视场范围 
    tmptilt = 45;     //镜头倾角 
    tmpAzimuth = 0;   //镜头方位角 
    tmpSpeed = 4;     //相机移动速度 
    (tmplat, tmplng, tmpalt,
(AltitudeModeGE)1, tmprange,    tmptilt, 
tmpAzimuth, tmpSpeed);  
} 
截屏设置
Google Earth有个很有用的功能,按【Ctrl+Alt+S】组合键,可以保存当前地图的截图照片,默认是JPG格式的彩***片。IApplicationGE接口也提供了一个SavaScreenShot方法,可以获得当前地图窗口内容的灰度图片,是黑白的。
SaveScreenShot为当前地图视场范围截屏,保存成黑白效果的图片。保存的黑白照片可以定义清晰程度。
加载KML操作
API中也提供了两个功能类似的方法--OpenKMLFile和LoadKMLData,这两个方法都可以向Google Earth加载KML文件,都能操作KMZ文件,但是各自略有不同。
OpenKMLFile加载的是KML文件路径,LoadKMLData是KML文件内容。
地理要素操作
获取Google Earth中加载的地理要素,可以采用GetFeatureByName方法,该方法通过要素名称确定要素对象,请参考IFeatureGE的name属性。
GetFeatureByName
定义为按照要素的名称得到地图要素对象,返回值类型为IFeatureGE对象。
其方程式如下:
代码:
ApplicationGEClass appGE = new ApplicationGEClass();  
…… 
/// <summary> 
/// 设置某要素是否可见 
/// </summary> 
/// <param name="f_name">要素名称</param> 
private void setFeat