面向空间信息服务的WebGIS分布式体系结构及关键技术

时间:2022-07-07 11:27:26

面向空间信息服务的WebGIS分布式体系结构及关键技术

摘 要 集成空间信息到关系型数据库,使得关系型数据库能更有效地为企业业务需求服务。本文对空间数据的概念、空间数据库的建立、webgis的功能特点、体系结构及关键技术进行了分析和探讨。 关键词 空间信息服务;空间数据库;webgis 1 引言 基于关系型数据库(rdbms)来进行空间数据的存储和管理,目前已经为构建空间数据库的主流技术。mapxtreme 2004 提供了空间服务器访问。这是一项强大的功能,允许开发人员连接到存储在空间服务器(例如,在 microsoft sql server、informix 或 oracle spatial 数据库上运行的 mapinfo spatialware)中的实时数据。空间服务器允许公司将其地图数据存放在企业数据库中,以便集中管理并获得更高的安全性。spatialware 这样的空间服务器为公司的空间数据提供了高级查询处理和提高的性能。 近年来,随着计算机技术的进步,地理信息系统也得到了飞速的发展,各种各样的地理信息应用系统建设很快,具有覆盖面广、层次多、规模大的特点。与此同时,gis软件的网络化应用也得到了很大的发展,用户对于webgis的需求也越来越大。webgis有利于充分利用计算机资源,增强协同处理业务的能力,进行业务监控,方便查询和统计。 2 空间信息简介 2.1 空间数据的特征 数据是信息系统的基础,一般认为数据是信息的载体,信息是数据的内涵。利用计算机来处理数据,提取信息是信息系统的基本功能。gis处理的主要是和空间位置、空间关系有关的数据,即空间数据。一般来说,空间数据具有以下基本特征: 空间性:这是空间数据最主要的特性。空间数据描述了空间物体的位置、形态,甚至需要描述物体的空间拓扑关系。例如描述一条河流,一般数据侧重于河流的流域面积,水流量,枯水期等。而空间数据则侧重于河流的位置、长度、发源地等和空间位置有关的信息。复杂一点的还要处理河流与流域内城市间的距离、方位等空间关系。空间性是空间数据区别于其他数据的标志特征。 抽象性:空间数据描述的是现实世界中的地物和地貌特征,非常的复杂,必须经过抽象处理。不同主题的空间数据库,人们所关心的内容也有差别。所以空间数据的抽象性还包括人为地取舍数据。抽象性还使数据产生多语义问题。在不同的抽象中,同一自然地物表示可能会有不同的语义。如河流既可以被抽象为水系要素,也可以被抽象为行政边界,如省界,县界等。 多尺度与多态性:不同的观察尺度具有不同的比例尺和不同的精度,同一地物在不同的情况下就会有形态差异。最典型的例子有:就形态而言,任何城市在地理空间中都占据一定范围的区域,因此可以认为其是面状地物,但在比例尺比较小的空间数据库中,城市是作为点状地物来处理的。 多时空性:gis 数据具有很强的时空特性。一个gis 系统中的数据源既有同一时间不同空间的数据系列;也有同一空间不同时间序列的数据。不仅如此,gis 会根据系统需要而采用不同尺度对地理空间进行表达。gis 数据是包括不同时空和不同尺度数据源的集成。 2.2 空间数据库的建立 2.2.1 安装mapinfo professional、mapxtreme、spatialware spatialware提供了以下几种特征和益处:①使空间数据和属性数据的完全集成。②使microsoft sql server和mapinfo professional以c/s结构紧密集成。③使sql server可以存储、访问.tab文件。④提供关系数据库的所有优势,如:安全性、稳定性、多用户访问、并发控制、备份。⑤创建空间数据类型(st_spatial)和操作空间数据的函数、存储过程。 mapinfo professional提供了以下几种特征和益处:①提供基于图形用户界面的查询操作。②提供地图图元的显示、编辑、分析功能。③提供安全数据检索、操作的odbc功能。 mapxtreme 2004 包括以下组件和功能:①产品框架:mapxtreme 2004 对象模型,与 .net 框架兼容。②开发环境工具:mapxtreme 2004 为开发人员提供了可以在 visual 中使用的控件、对话框以及模板,用于开发 windows 应用程序(使用 windows 窗体)和 web 应用程序(使用 )的。开发人员可以利用对象模型将这些组件进行扩展,从而获得更高级的功能。③强大的地图绘制和分析能力:先前版本 mapxtreme 和 mapx 中提供的所有功能和操作现在仍然可用,其中包括创建地图、显示、对各种源的数据访问、主题地图绘制、光栅和网格处理、对象处理和表示。④规模可伸缩的基础结构:mapxtreme 2004 提供了对象池和缓存功能,开发人员可以使用这些功能按不同的性能要求对 web 应用程序进行精细调整。 2.2.2 创建数据库 create database spatialdb on ( name = spatialdb_dat, filename = 'd:\program files\microsoft sql server\mssql\data\spatialdb.mdf', size = 10, maxsize = 50, filegrowth = 5 ) log on ( name = 'spatialdb_log', filename = 'd:\program files\microsoft sql server\mssql\data\spatialdb.ldf', size = 5mb, maxsize = 25mb, filegrowth = 5mb ) go 2.2.3 空间化数据库 在sql server的查询分析器中执行以下的存储过程: exec sp_spatialize_db go 空间数据库可以接收、操作空间数据。空间化过程中创建了一个存储关于可空间化表的元数据的注册表(mapinfo_mapcatalog)。 2.2.4 创建新表 create table geotable ( sw_member integer not null identity primary key, sw_geometry st_spatial) go 2.2.5 空间化表 exec sp_sw_create_rtree 'dbo','geotable','sw_geometry','sw_member',null,200,10000 go 3 基于空间数据库的webgis 3.1 webgis的体系结 webgis是internet技术应用于gis开发的产物。由于国际互联网(internet)的迅速崛起,使得web技术成为高效的全球信息技术。因此,利用internet技术在web上地理信息,就能从/network/">网络带宽、计算机性能等一系列资源状况,将gis应用按照功能分布到不同的节点上,如分布到多台服务器上或是将一部分简单应用分布到客户机上,复杂的应用仍交给服务器执行,这样可以大大提高gis软件的性能。

(4)空间数据的分布性。空间数据可以根据其本身具备的空间特征存储在最适宜的位置上,从而大大简化了对空间数据的管理。

图1 webgis体系结构 3.2 关键技术 3.2.1 访问远程空间数据 mapxtreme 2004 应用程序可以“实时”访问 dbms 数据,可以使用 mapinfo.data 命名空间中的 tableinfoserver 类,从 dbms 中的数据添加表。主要代码如下: private void page_load(object sender, system.eventargs e) { if (mapinfo.engine.session.current.catalog["geotable"] != null) { mapinfo.engine.session.current.catalog.closetable("geotable"); } tiserver = new tableinfoserver("geotable"); tiserver.connectstring = "driver={sql server};server=.;uid=sa;pwd=;database=spatialdb;dlg=0"; tiserver.query = "select * from geotable"; tiserver.toolkit = servertoolkit.odbc; maptableloader tl = new maptableloader(tiserver); this.mapcontrol1.map.load(tl); } spatialware提供了操作空间数据的函数,使得操作空间数据库中的空间数据和操作属性数据一样方便,如: insert into geotable(sw_geometry) values( ‘st_spatial(st_point(-111.11,44.44)’) 3.2.2 运用缓存 根据本地文件位置,应用程序可以从远程数据库访问 mapxtreme 2004 图元。为了避免每次对地图进行动作时都要从数据库中读取这些记录, mapxtreme 2004 可以把这些记录临时存储在缓存中。这可以限制应用程序和远程数据库之间的调用次数。可对服务器表中的记录(即绘图、主题、标注等)进行缓存以提高应用程序性能。在读取服务器表数据读取并将其绘制到 map 窗口时,可在内部对其进行缓存。所有后续重绘都从缓存中读取,而不是进入服务器数据库获取同样的数据。缓存能够显著提高重绘性能。通过为 tableinfoserver 对象的 cachesettings 属性指定值来添加服务器表并且该服务器表是默认的 on 时,可以启用缓存。该属性有四个可能的值:on、off、all 和 user,默认情况下为 on。 参数 说明 off 值 'off' 表示表将根本不使用缓存。所有数据操作将直接进入数据库服务器。 on 缓存被启用,并且表自动执行基于地图视图(中心或缩放)的缓存。用户还可以通过缓存约束对象来控制缓存。 all 整个表被缓存。使用该选项,表的数据只需从服务器检索一次,以后就可以从本地进行访问。要刷新缓存中的数据,请对该表使用 refresh 方法。 user layerinfo cache 参数的值 user 表示应用程序创建了缓存,但只有应用程序开发人员指定的那些记录放入缓存中。 4 结束语 webgis技术是gis系统与internet技术相结合的成果,通过利用internet 技术,gis能更灵活方便地为用户服务。而基于rdbms的空间数据库技术为webgis的建设提供数据支持,使其访问空间数据和属性数据的能力完美地集成,提高远程访问数据的能力。基于空间数据库的webgis必然带领gis技术进入一个革新的时期。 参考文献 1 陈述彭,鲁学军,周成虎. 地理信息系统导论. 北京市:科学出版社,2000.1 2 郭仁忠.《空间分析》.武汉市:武汉测绘科技大学出版社.1997 .1 3 赵霈生,杨崇俊.web-gis的设计与实现[j]. 中国图象图形学报,2000.5 4 宋关福等。webgis—基于internet的地理信息系统.中国图像图形学报,1998.3

上一篇:二手交易网站系统的设计与实现 下一篇:分布式拒绝服务攻击及防范研究