网站大量收购闲置独家精品文档,联系QQ:2885784924

基于MapGuide的地图数据的应用和研究.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于MapGuide的地图数据的应用和研究 摘 要 文章对几种不同的地图数据的存储格式、查询、显示进行了分析,发现MapGuide是一个组件式的WebGIS发布平台,能够对不同GIS数据进行有效的管理。 关键字: MapGuide, SDF, SHP, 地图数据 1. 引言 在开发网格化警务系统的时候,发现有效地组织与管理复杂而庞大的地图空间数据,管理信息数据,是系统开发的最关键部分。所以,怎样合理的数据存储,数据间交互处理是我们所面临重要的环节。 网格化警务系统有GIS服务器(MapGuide Server)、WebGis服务器、LBS中心服务器(警务监控)、手机端等四个部分组成。其中MapGuide Server管理空间数据和属性数据。WebGIS服务器通过IIS服务器提供地图显示、警员实时移动显示、区域化管理、空间信息查询等。因为文章只是对地图数据进行研究,所以略去LBS中心服务器和手机端部分。 2 MapGuide地图数据的分析 网格警务系统就是通过地理空间拓扑结构建立地理图形的空间模型并定义各空间数据之间的关系,MapGuide采用矢量图形方式保存和处理空间数据,并根据用户要求动态地生成矢量数据传输到客户端,因此大大降低了数据传输量和服务器负载.在客户端,由MapGuideViewer插件提供用户访问接口,同时作为矢量图形的数据解释器和图形生成器,动态显示地图,并提供了地图缩放等常用用户界面,支持Netscape Communicator和微软Internet Explorer. MapGuide可以访问不同地图数据格式,其中包括SHP(shape file),SDF(spatial data file),Oracle9i Spatial等数据格式。SHP是三种文件组成:SHP (shape geometry), SHX (shape index), 和DBF(shape attributes in dBASE format)。这些文件都能够通过数据提供者(Provider for SHP)来访问。Autodesk MapGuide server可以直接访问ArcView和ArcInfo公司产品的SHP地图存储格式,而不需要把SHP文件转换成SDF(spatial data file)格式。因为MapGuide对这些数据提供一套规范COM访问接口。同时MapGuide还可以访问其他数据格式包括SHP,SDF,Oracle8i Spatial,Oracle9i Spatial以及其他OLE DB数据Spatial Data Providers(SDP)例如下图所示: Data Providers Data SDF文件是显示在MapGuide地图上空间数据文件,包括道路、建筑物、背景、兴趣点等地图文件。SDF是一个二进制文件。在SDF文件中图文件都是由点,线和多边形来表示地理信息的文件。每一个图文件都有一个唯一的关键值来与之对应属性数据。同时每一个SDF数据文件都有一个空间索引文件SIF(Spatial Index File)和关键字索引文件(Key Index File)与之联系。这两个文件的作用主要是通过索引来加速查询地图数据。下面一起来讨论一下SDF具体使用关键技术。 1)SDF文件的数据结构 struct SdfRecord { int key; //对应关键字 string name; string Type; float Xmin;//最小的经度 float Ymin;//最小的进度 float Xmax; float Ymax; } 2)对于SDF文件数据的操作具体实现 SDF 组件工具箱是一个 COM 接口集,用于读取和写入 Autodesk MapGuide 软件所使用的 SDF 格式。在支持 COM 的开发环境(例如,Microsoft? Visual Basic?、Macromedia? ColdFusion?、ASP 和 C++)中,您可以获取 SDF 组件工具箱的对象。下面是对SDF文件操作实现的说明: a)引入SDF的库文件,对应的语法如下: #import SdfComTk.dll named_guids raw_interfaces_only b)初始化OLE/COM库环境 CoCreateInstance(CLSID_SdfToolkit,NULL,CLSCTX_INPROC_SERVER,IID_ISdfObject, (void**)pIObject); c)读取相应SDF文件 m_pToolkit-Open(BSTR(bsFileName), sdfOpenRead, FALSE); d)遍历SDF文件,读取所有SDF数据的纪录 ISdfObject* pObject; /

文档评论(0)

14576 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档