GoogleEarthCOMAPI及KML技术在旅游管理信息系统开发中.pdf
《GoogleEarthCOMAPI及KML技术在旅游管理信息系统开发中.pdf》由会员分享,可在线阅读,更多相关《GoogleEarthCOMAPI及KML技术在旅游管理信息系统开发中.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 12卷 第 6期2010年 12月地 球 信 息 科 学 学 报JOURNAL OF GEO?INFORMATI ON SCI ENCEVol?12,No?6Dec?,2010收稿日期:2010-07-07;修回日期:2010-08-28.基金项目:长江项目示范区生态功能监测与早期预警信息系统(C/I V/S/08/151);国家生物多样性信息服务平台(F/I V/S/09/165)。作者简介:马立广(1980-),男,博士,研究方向为地理信息共享环境,主要是信息共享技术环境研究及地理环境与人口健康。E?mai:l malg lreis?ac?cnGoogle Earth COM API及
2、 KML技术在旅游管理信息系统开发中的应用马立广,曹彦荣(中国科学院地理科学与资源研究所 资源与环境信息系统国家重点实验室,北京 100101)摘要:地理信息技术的发展,推动了旅游业信息化的进展。特别是随着生态环境保护意识的增强,生态旅游的行为和内容也逐步纳入到旅游信息和旅游资源管理范畴中。本文采用 Google Earth COM API,基于开放式 KML 数据标准,探讨开放式地理信息技术在旅游资源管理信息系统中的应用。与读者分享基于 KML数据标准,对多元异构的旅游资源数据进行的标准化分类组织和整合的技术方法,介绍使用 Google Earth三维数字地球平台提供的免费 API快速实现旅
3、游景观资源的可视化,旅游景观资源和信息的快速查询与空间定位功能,以及旅游景观资源的 3D自动漫游飞行功能的实现途径和方法,归纳总结开发中的技巧和经验。并实际应用 Google Earth COM API与 C#.Net语言联合开发了旅游资源管理信息系统,为部门管理旅游资源信息和公众交互访问旅游资源提供便捷的技术平台,也为同类型的旅游资源信息系统的研发提供技术参考。关键词:Google Earth(GE)COM API;KM L;旅游信息系统;漫游1?引言随着信息技术的发展,地理信息的产业化推动旅游业中的信息化和数字旅游的发展,使得利用地理信息系统技术开发旅游地理信息系统成为旅游业发展的一项关键
4、技术 1-5。2005年 6月,谷歌推出 Google Earth(简称 GE),给互联网用户带来全新的感受,也给地理信息行业带来了巨大的冲击。GE作为优秀的地图平台,不仅能够提供较强的地图图像传输功能,更能提供免费的 API(Appli?cation Progra mm ing Interface),用户只需加上业务代码,即可构架一个满足基本业务需要的行业地理信息系统。这一技术对旅游信息化的发展起到推波助澜的作用 6-14。作为谷歌 API的一种,Google EarthCOM API技术有助于建立旅游地理信息系统,实现旅游资源的信息化管理,使得用户能够全方位地观察旅游景观。2?KML数据格
5、式与数据组织2.1?KML数据格式随着地理信息技术在各个行业中的普及,发展专业的数据模型,应用传统的地理数据承载传递丰富的行业数据和信息,已经成为信息系统构建不可或缺的组成部分。W eb技术和公众 GIS技术的普及与快速应用,自发地理信息(Volunteered Geographic Infor m ation,VGI)数据资源迅速膨胀,用户通过移动设备和浏览器终端,自发贡献各种地理数据,极大地丰富了数据内容。如一些在线地图服务中,用户可以进行简单的地物要素勾绘和标注。这意味着公众自发提供的数据需要与现有的 GIS数据模型融合在一起,这同样推动地理数据模型的建立。KML(Keyhole M a
6、rkup Language)是一种基于XML(eXtensible M arkup Language,可扩展标记语言)语法和文件格式的数据文件,可用来描述和保存地理数据(包括点、线、面、多边形,多面体和模型等),能在 Google Earth客户端中显示。KML 文件作为一种多功能的地理数据格式,它可以将网页链接、图片、模型及各种媒体档案资料在 Google Earth中作完整的呈现。现在 KML已经成为 OGC(OpenGeospatialConsortium)的开放式地理资讯编码标准,作为一种新型的地理数据格式,提供地理数据的组织模型。更 多 的 KML 信 息,可访 问:http:/co
7、de.google.co m/intl/zh-CN/apis/k m l/documentation/。KML数据格式运用 、四个元素作为文件的根标签组织数据。Feature作为抽象元素,实现地理信息的封装与管理,NetworkLink元素实现 KML的共享;P lace m ark元素实现地理对象的封装与 可视化;Folder元素实现对地理对象的层次化管理;Docu?ment元素实现各类 Feature元素、Style元素、Schema元素的封装与管理;Overlay元素实现屏幕贴图与地面贴图功能;Style元素实现地理对象的外在样式表示;Schema元素对 Placemark元素的继承实现
8、地理对象属性值扩展。为减少数据组织和数据转换的工作量,充分发挥 KML数据格式的优势和可复用性,基于 KML 数据模型,可对旅游资源数据进行分层组织整理。2.2?KML数据组织旅游资源数据根据实际情况可归纳为:景点、景区、旅游路线、文档、图片、视频等多种数据。区域基础地理数据和高分辨的遥感影像数据作为旅游资源的重要背景数据,也可弥补 GE 中部分影像数据现势性不足的缺陷。应用地理数据模型,表达旅游资源数据和信息。传统的地理数据模型把现实世界抽象为点(Point)、线(L ine)、面(Polygon)等简单实体。从数据组织的角度,有人对点、线、面三种简单对象实体进行组合派生,提出复杂对象概念,
9、考虑注记(An?notation)信息,给出地理空间中存在 5种基本对象的概念:点、线、面、注记和复杂对象。在将简单对象和复杂对象的不同组合形成数据集合,定义为对象集合,类别有简单对象集合,符合对象集合和场。从地理数据几何图形要素的角度,将景点为主的点状类要素数据,旅游路线为主的线状类要素和以景区为主的面状类要素分别抽象表达为地理要素的点、线、面,将文本信息、图片、路线景区的描述信息等作为对应点、线、面几何要素的属性或附加说明。借助于 KML的数据组织功能,将旅游资源点状、线状、面状三类数据整合在一起,使用 KML 中的要素标签来表示三类数据的几何特征,即用Point、L ineString和
10、 Polygon要素来分别描述景点、路线和景区的几何信息,用 L ink、style、description等标签或简单 HTML 语法描述超级链接和图片等标注信息,表达各几何对象的样式及属性说明。旅游资源数据对象与 KML几何要素对象之间的抽象对应关系如表 1所示。表 1?旅游资源数据对象与 KM L要素对象关系Tab.1?Relationship bet ween tourism data andKM L ele m ents旅游资源数据地理数据数据格式 对象实体KML要素点状类(景点/地名点/地标等)线状类(旅游路线/道路等)面状类(景区、规划区)矢量点Po int线LineString
11、面Po lygon影像数据栅格数据I mageO verlay?此外,由于景区可能包含多条旅游路线和/或多个旅游景点。旅游路线又是由多个景点构成。因此,需要表现旅游数据对象间的关系,即点、线、面要素之间存在的对应和包含关系,并能在自定义的系统中自动解析景区、路线和景点之间的关系,采用 Placemark标签,通过添加特殊的标记,在 KML文件中存储要素间的关系。对于遥感影像数据的显示,GE提供了影像叠加层功能(Overlay)。但是影像数据的直接叠加存在如下不足:初始加载影像叠加层,特别是高分辨率的影像数据,由于覆盖范围较广,数据量较大,叠加层功能需要占用大量内存资源,导致遥感影像数据一次加载
12、速度较慢,影响用户的体验。采用 LOD(Level of Detail的缩写)技术,可提高影像数据的加载速度 15。把高分辨率影像数据进行切片,应用KML的、标签组合的方式,实现切片影像数据组织加载,切片的原理在很多的文献中都有所介绍 16-18,这一策略可以很大程度上降低内存的占有率和缩短影像加载的时间?。?遥感影像处理软件 ENVI在新版本中提供影像数据转化成KML文件的工具 Goog le Earth Bridge,可辅助实现影像数据的切片和 KML的转换功能。8296期马立广 等:Google Earth COM API及 KML技术在旅游管理信息系统开发中的应用?3?基于 Googl
13、e Earth COM API的系统开发与应用3.1?系统设计与开发采用 C/S三层架构方式,构建的旅游资源管理信息系统的架构如图 1所示:在数据层,采用 KML 数据格式,完成旅游资源数据的分类、整合和多样化描述与组织,其中,描述景点信息的 KML文件片段如下所示:图 1?系统的结构图F ig.1?Structure chart of the system?宝兴?蜂桶寨?生态旅游景点?nor mal?#sn_car?highlight?#sh_car?1.3?.在技术层,开发人员采用谷歌提供的 COMAPI,利用可视化编程工具,如 Visual Studio 2005等,调用 COM API
14、函数或用户自定义的方法,添加业务逻辑,构建应用程序 19,通过对 Google Earth发送指令进行信息查询,加载 KML、查询当前视图,控制 3D视角等操作。功能层是面向用户的应用和技术功能的实现。下文主要围绕旅游资源管理信息系统功能和 GECOM API开发的几个关键部分的 C#代码实现进行说明。系统的主要功能和关键步骤之一,是通过 API函数完成三维地球控件的加载和初始化,初始化的C#函数片段如下:public void Init()?GeApp=new A pplicationGEClass();?/获得 GE主程序句柄?GEHWnd=(Intprt)GeA pp.GeM t a i
15、n Hwnd();?/获得 GE球体句柄?GEHrender=(Intprt)GeA pp.Get R ender Hwnd();?/获得 GE主程序和球体范围?RECT ma inRect=new RECT();?NativeM ethods.G eWtindowRect(GEHWnd,outmainRect);?RECT clientRect=new RECT();?NativeM ethods.G eWtindowRect(GEH render,out clientRect);?/获得 GE主窗体和球体之间的差值?int offseWt=ma inRect.W idth-clientRe
16、ct.W idth;830地 球 信 息 科 学 学 报?2010年?int offset H=mainRect.Height-client R ect.Height;?/设置主窗体?N ative M ethods.SeWtindowPos(GEHWnd,N ative M ethods.HWND _BOTTOM,0,0,?this.W idth+offseWt+5,this.Height+offsetH+5,NativeM ethods.S WP_HI DE W I NDOW);?/设置球体?Native M ethods.M ove W indow(GEH reder,0,0,this.
17、W idth,this.Height,true);?Native M ethods.SetParent(GEHrender,this.H andle);?/若 GE没有完成初始化,则继续初始化?while(GeA pp.IsI nitialized()=0)?Thread.Sleep(500);?/设置钩子事件?mousehook=new M ouseHook();?mousehook.M ouseU p+=new MouseEvent Handler(mousehook _M ouse U p);?mousehook.StartHook(HookType.WH_ MOUSE_LL,0);KM
18、L格式的旅游资源数据文件是系统的核心。KML文件的加载和显示是系统的重要功能,通过调用 I ApplicationGE 接口中 的 Open Km lF ile 方 法或LoadKm lFile实现 KML文件的加载,加载函数片段如下:protected override void OnLoad(EventArgs e)?base.OnLoad(e);?if(!this.Design M ode)?/EarthControl类包括四个参数,存放景点、路线、景区、目录信息?earthControl=new EarthControl(lsScenSpot,lsRoute,lsS?cenArea,t
19、vA llFiles);?paneM l e.Controls.A dd(earthContro l);?earthContro.l Dock=DockStyle.F il;l?/调整地球大小?earthContro.l SizeChanged+=new Event Handler(earthCon?trol_SizeChanged);?/GE 初始化?earthContro.l Init();?/加载 KML 数据?earthContro.l OpenKmlF ile(Path.GetFullPath(.?.Data D ata.kmz,1);?tempFeatureGE=earthCont
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GoogleEarthCOMAPI KML 技术 旅游 管理信息系统 开发
限制150内