Google Earth COM API
来源:互联网 发布:阿里云root 编辑:程序博客网 时间:2024/04/30 02:54
1,COM初步:
Google Earth客户端是基于组件技术的,组件即COM,Google Earth COM API是Google Earth组件的公用接口。
面向对象编程思想非常注重对象之间的联系,但是程序之间的联系,则是COM所注重的,在软件行业蓬勃发展的今天,不同软件之间互相利用是一个常见的事情,因此COM在当今软件行业是一种潮流。
COM技术本身也是基于面向对象思想编程的,COM包括对象和接口两部分。COM的对象和C++中的对象概念类似,对象是类的实例,类则是经过封装的一个数据结构。接口是一组与对象相关的函数集合。这些函数通常被称为接口成员函数,函数名一般以I为前缀。
组件拥有对象,对象拥有接口,外部程序需要利用该组件的功能,就必须调用组件中对象的接口。
每个组件都拥有一个128位的对象标识符CLSID。CLSID在全球范围内是唯一的,这样可以避免不同组件质检的冲突,组件的每个接口也拥有一个128位的全局唯一标识符GUID,用于可以通过GUID获得接口的指针,进而调用接口成员函数。
CLSID是指windows系统对于不同的应用程序,文件类型,OLE对象,特殊文件夹以及各种系统组件分配一个唯一表示它的ID代码,用于对其身份的标示和与其他对象进行区分。
先得说下GUID,它是Globally Unique Identifier的简称,中文翻译为“全局唯一标示符”,在Windows系统中也称之为Class ID,缩写为CLSID。
组件技术采用了IDL(接口描述语言)描述组件的数据结构,在组件模型中,接口首先需要定义,然后通过类来实现这些接口,IDL通过近似C/C++语言的形式描述了接口的定义,类的属性和成员函数。同时还定义了一些常用的数据结构,以及组件自定义的一些数据结构,通过VC++提供的MIDL工具,用户可以将IDL生成C/C++兼容的头文件(.h)。
组件中的所有接口都支持IUnkonwn接口,组件中的所有类都实现了这个接口,IUnknown定义了所有接口的基本功能,包括QueryInterface,AddRef,Release三个函数。通过QueryInterface函数,用户可以获得对象的其他接口,函数AddRef和Release用来控制对象的声明周期。
组件可以分为进程内组件和进程外组件两类。进程内组件运行效率高,以DLL(动态链接库)的形式出现。进程外组件的运行效率相对较低,但是进程外组件可以被远程调用(远程控制)。当外部程序与组件不在同一台机器,甚至不在同一网络,都可以调用进程外组件,进程外组件以EXE的形式出现,Google Earth属于进程外组件的范畴。
二进制是组件的最大特点,组件技术独立于任何编程语言,建立在二进制代码的基础上,用户可以使用任何语言来创建一个组件,此外,组件还具有接口不变性、继承性和多态性等特点。
2,COM库:
组件的对象和接口模型给用户提供了一种构建组件的规范,用户利用这种规范来创建自己的组件。为了协助用户更有效率的创建组件,Microsoft Windows操作平台提供了有关COM的一系列代码,这一系列代码组成COM库,以.dll文件的形式存在。
COM库实现了很多功能,用户通过调用COM库的函数来完成组件的相关操作,一般用户创建一个组件对象,进而调用组件的接口成员函数,最后释放组件对象,整个过程都要用到COM库。
用户首先调用CoInitialize()函数初始化COM库,然后在注册表中,COM库根据组件名称查找组件对象标识符CLSID,根据获得的CLSID,COM库函数CoGetClassObject()创建对象的类厂,进而由类厂完成组件对象的创建,返回对象的指针,在用户不再使用组件资源时,COM库调用CoUninitialize()函数释放资源。过程如下:
COM库除了实现组件对象调用的基本功能,还实现了如COM通信等更多的特性,此外,COM库提供了一些宏和标准接口定义,由于COM库是建立在操作系统平台之上的,所以随着操作系统的更新,COM库的功能将更强大。
3,Google Earth COM API类库:
COM即组件技术,API即应用编程接口。Google公司为用户提供了Google Earth COM API类库,其意义在于用户可以在各种外部程序中调用Google Earth的功能。Google Earth COM API是一个包括11个类的类库,这些类都实现了IDispatch接口,IDispatch接口和COM中的自动化技术相关。
MFC中对自动化技术的支持类:COleDispatchDriver类。
COleDispatchDriver类成员函数:
CreateDispatch成员函数通过组建的CLSID值来创建组件对象,并返回该对象的指针;
AttachDispatch成员函数可以把当前的COleDispatchDriver类的对象和其他自动化对象联系起来;
DetachDispatch函数和AttachDispatch功能相反;
ReleaseDispatch函数用来释放所创建的对象。
用户通过COleDispatchDriver类的函数创建Google Earth的对象,进而可以使用Google Earth COM API类库。该类库中的11个类中,IApplicationGE类最重要,类库中其他类的使用,都会涉及IApplicationGE类中的属性和函数。
COM API类库介绍:
IApplicationGE 入口类,通过该类,用户进一步调用其他类;
ICameraInfoGE 相机类,通过该类,用户可以调整观看当前视图的方式;
IFeatureGE 要素类,通过该类,用户可以控制要素的属性;
IFeatureCollectionGE 要素集合类,通过该类,用户进一步获取要素;
IPointOnTerrainGEt 地理坐标点类,通过该类,用户获取屏幕点的地理坐标;
IVewExtentsGE 视口类,通过该类,用户可以控制当前视口;
ISearchControlerGE Search面板类,通过该类,用户可以完成相应的搜索功能;
ITourControlerGE Tour面板类,通过该类,用户可以动态播放当前的要素;
IAnimationControllerGE Animation面板类,通过该类,用户可以动态播放当前的时间要素;
ITimeGE 时间类,通过该类,用户可以获取和设置要素的时间属性;
ITimeIntervalGE 时间间隔类,通过该类,用户可以获取要素的时间间隔属性。
组件技术采用了IDL(接口描述语言)描述组件的数据结构,在组件模型中,接口首先需要定义,然后通过类来实现这些接口,IDL通过近似C/C++语言的形式描述了接口的定义,类的属性和成员函数。同时还定义了一些常用的数据结构,以及组件自定义的一些数据结构,通过VC++提供的MIDL工具,用户可以将IDL生成C/C++兼容的头文件(.h)。
组件中的所有接口都支持IUnkonwn接口,组件中的所有类都实现了这个接口,IUnknown定义了所有接口的基本功能,包括QueryInterface,AddRef,Release三个函数。通过QueryInterface函数,用户可以获得对象的其他接口,函数AddRef和Release用来控制对象的声明周期。
组件可以分为进程内组件和进程外组件两类。进程内组件运行效率高,以DLL(动态链接库)的形式出现。进程外组件的运行效率相对较低,但是进程外组件可以被远程调用(远程控制)。当外部程序与组件不在同一台机器,甚至不在同一网络,都可以调用进程外组件,进程外组件以EXE的形式出现,Google Earth属于进程外组件的范畴。
二进制是组件的最大特点,组件技术独立于任何编程语言,建立在二进制代码的基础上,用户可以使用任何语言来创建一个组件,此外,组件还具有接口不变性、继承性和多态性等特点。
2,COM库:
组件的对象和接口模型给用户提供了一种构建组件的规范,用户利用这种规范来创建自己的组件。为了协助用户更有效率的创建组件,Microsoft Windows操作平台提供了有关COM的一系列代码,这一系列代码组成COM库,以.dll文件的形式存在。
COM库实现了很多功能,用户通过调用COM库的函数来完成组件的相关操作,一般用户创建一个组件对象,进而调用组件的接口成员函数,最后释放组件对象,整个过程都要用到COM库。
用户首先调用CoInitialize()函数初始化COM库,然后在注册表中,COM库根据组件名称查找组件对象标识符CLSID,根据获得的CLSID,COM库函数CoGetClassObject()创建对象的类厂,进而由类厂完成组件对象的创建,返回对象的指针,在用户不再使用组件资源时,COM库调用CoUninitialize()函数释放资源。过程如下:
COM库除了实现组件对象调用的基本功能,还实现了如COM通信等更多的特性,此外,COM库提供了一些宏和标准接口定义,由于COM库是建立在操作系统平台之上的,所以随着操作系统的更新,COM库的功能将更强大。
3,Google Earth COM API类库:
COM即组件技术,API即应用编程接口。Google公司为用户提供了Google Earth COM API类库,其意义在于用户可以在各种外部程序中调用Google Earth的功能。Google Earth COM API是一个包括11个类的类库,这些类都实现了IDispatch接口,IDispatch接口和COM中的自动化技术相关。
MFC中对自动化技术的支持类:COleDispatchDriver类。
COleDispatchDriver类成员函数:
CreateDispatch成员函数通过组建的CLSID值来创建组件对象,并返回该对象的指针;
AttachDispatch成员函数可以把当前的COleDispatchDriver类的对象和其他自动化对象联系起来;
DetachDispatch函数和AttachDispatch功能相反;
ReleaseDispatch函数用来释放所创建的对象。
用户通过COleDispatchDriver类的函数创建Google Earth的对象,进而可以使用Google Earth COM API类库。该类库中的11个类中,IApplicationGE类最重要,类库中其他类的使用,都会涉及IApplicationGE类中的属性和函数。
COM API类库介绍:
IApplicationGE 入口类,通过该类,用户进一步调用其他类;
ICameraInfoGE 相机类,通过该类,用户可以调整观看当前视图的方式;
IFeatureGE 要素类,通过该类,用户可以控制要素的属性;
IFeatureCollectionGE 要素集合类,通过该类,用户进一步获取要素;
IPointOnTerrainGEt 地理坐标点类,通过该类,用户获取屏幕点的地理坐标;
IVewExtentsGE 视口类,通过该类,用户可以控制当前视口;
ISearchControlerGE Search面板类,通过该类,用户可以完成相应的搜索功能;
ITourControlerGE Tour面板类,通过该类,用户可以动态播放当前的要素;
IAnimationControllerGE Animation面板类,通过该类,用户可以动态播放当前的时间要素;
ITimeGE 时间类,通过该类,用户可以获取和设置要素的时间属性;
ITimeIntervalGE 时间间隔类,通过该类,用户可以获取要素的时间间隔属性。
- Google Earth COM API
- Google Earth Com API开发资料3
- C# 调用 Google Earth Com API开发(二)
- C#调用Google Earth COM API开发(一)
- C# 调用 Google Earth Com API开发(二)
- C# 调用 Google Earth Com API开发(三)
- C# 调用 Google Earth Com API开发(四)
- 转:C# 调用 Google Earth Com API开发(三)
- 转:C# 调用 Google Earth Com API开发(四)
- 在.NET平台使用Google Earth COM API示例(01)
- 在.NET平台使用Google Earth COM API示例(02)
- 在.NET平台使用Google Earth COM API示例(03)
- 在.NET平台使用Google Earth COM API示例(04)
- 在.NET平台使用Google Earth COM API示例(05)
- 在MFC项目中使用Google Earth COM API示例
- google earth web api
- 论文-基于MFC单文档的Google Earth COM API程序设计
- Google Earth API开发者指南(初级)
- 【SDCC大会ppt】高性能Web前端的打造和测试
- 单例HttpClient 不需要维护cookie
- vm自动安装linux解决方法
- 使用stringstream实现数字到字符串之间的转换
- 旧工程适配iOS6和iPhone5的一些故事
- Google Earth COM API
- oracle数据库学习
- java URL请求
- 关于WM_CREATE消息
- 统一设置word文档中的图片大小的宏。
- 11gR2 RAC进程-顺序-日志
- 如何在windows程序中读取bios内容
- 【PHP SDK for OpenStack/Rackspace APIs】使用Object
- traceroute工作原理