WebGIS中空间数据与属性数据的关联

时间:2022-09-26 11:16:23

WebGIS中空间数据与属性数据的关联

摘要:该文针对当前突发性公共卫生事件防治工作的迫切需求,采用WebGIS技术开发了预警预测系统,利用GIS的较强的地理信息表现能力,将卫生状况的属性数据反映在地图当中,以便于进行可视化分析查询,从而快速做出相应决策。文中根据开发实例详细介绍了数据库的访问方法和空间数据与属性数据的关联。

关键词:数据访问;;数据关联

中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)16-4352-02

Spatial Data and Attribute Data Connection In WebGIS

CHEN Yong

(Artillery Academy ofP.L.A, Hefei 230031, China)

Abstract: This article is against the sudden public health events for the current urgent need for prevention and control, adopted the WebGIS technology to develop early warning forecast system, and used the strong geography information performance ability of GIS, to reflect the health data in the map, so that advantageous to CDC to visualization analysis and query, and then make an appropriate decisions. In the article introduced the database access method and the spatial data and the attribute data connection in detail.

Key words: data accessing; ; data association

该文根据突发公共卫生事件预警预测系统的开发实例具体介绍了WebGIS中访问数据库和空间数据与属性数据的关联方法。

系统使用MVC 3层结构,数据模型,业务逻辑和控制的代码分开编写,这种类型的数据库改动只需要修改数据模型的代码就可以,大大提高了代码的通用型和健壮性。

系统对数据实现了R/O映射,将数据库的表结构映射为C# 中的对象,这样处理的好处是使得代码具有很高的可读性,并且在编写业务逻辑的时候可以受数据库结构和数据类型的约束,只需要按照对象的变量类型给其赋值,或者调用对象中的已知方法就可以了。这样可以大大提高软件开发的效率。具体实现步骤是第一步通过Select(string sql)方法,得到DataTable,第二步是DataRow -> Mod_表名,每个表对应一个类:Mod_表名,GetModels就是通过一个for循环,就获取到的DataTable将每一行转换为一个模型(就是一个类),那么最终返回一个模型的数组。

创建数据模型层所用到的底层方法和对象都源自组件,这是.net平台上的一套数据库操作集,他的特点就是面向对象。

对 Microsoft SQL Server 和 XML 等数据源以及通过 OLE DB 和 XML 公开的数据源提供一致的访问。数据共享使用者应用程序可以使用 来连接到这些数据源,并检索、处理和更新所包含的数据[1-2]。

通过数据处理将数据访问分解为多个可以单独使用或一前一后使用的不连续组件。 包含用于连接到数据库、执行命令和检索结果的 .NET Framework 数据提供程序。您可以直接处理检索到的结果,或将其放入 DataSet 对象,以便与来自多个源的数据与在层之间进行远程处理的数据组合在一起,以特殊方式向用户公开。 DataSet 对象也可以独立于 .NET Framework 数据提供程序使用,以管理应用程序本地的数据或源自 XML 的数据[3]。

系统中数据库连接字符串是保存在db.text.txt里面的一行文字。其中记录了数据库的位置和用户名密码。

疾病数据通过ccWeb.DataAccess.dacRegion_Dim.Method().GetMode()方法获得,得到的是乡镇数据的一个模型,是自定义的一个类。代码如下:

class TownDrawInfo

{public String townName;//乡镇名称

public String drawInfo;//绘制信息

public DPoint drawPosition;//镇的中心位置

public MultiPolygon drawPolygon;//镇的区域范围

public String townAnnouce;//通知

public String townLeader;//乡镇负责人

public String townLeaderTel;//乡镇负责人联系方式

public int townTotalPeople;//乡镇总人口

public String newDiseaseInfo;//最新发病信息

public String newDiseaseReportTime;//最新发病时间

public List hospitals;//医院信息}

这样获得的数据,比如townInfo,通过townInfo. townName就能得到乡镇名称,初始化完成后不需要经常访问数据库,可以很大的提高程序的执行效率,节约系统资源。

同样的,发病的统计样本数据也是一个定义为类的模型,通过ccWeb.DataAccess.dacJoin_Info.Method().GetModels()方法获得。该模型的定义代码如下:

class DiseaseEvent

{public String diseaseName;//病名

public DateTime diseaseRegDate;//注册时间

public int diseasePeopleNum;//生病人数数量

public int diedPeopleNum;//死亡人数名单

public int diseasePending;//正在接受治疗的病人数量

public int diseaseTreated;//治愈人数

public int diseaseAsLinChuanNum;//显示临床诊断病例

public int diseaseAsShiYanShiNum;//实验室诊断病例

public int diseaseAsYiSiNum;//疑似病例

public int diseaseAsBiYuanXieDaiNum;//病原携带者}

数据库连接以后,就是与地图数据的关联,只有与地图数据关联才可以实现在地图上的定位显示。这是系统最根本的功能。以下详细介绍空间数据和属性数据的关联:

空间数据是指目标的位置信息数据、拓扑关系等。属性数据是指与空间位置没有直接关系的代表特定地理意义的数据,既可以是独立于专题地图的社会经济统计数据,也可以是与专题地图相关,表示地物类别、数量、等级的字符串或数字。属性数据库设计是指属性数据文件设计、属性数据库结构设计、属性数据管理系统的功能设计和相应软件编写等。目前有的系统把属性数据与图形数据组织在数据文件的同一个目录中,这种方式既不灵活,又造成很大的冗余;更多的系统则把属性数据以单独的数据文件方式与图形数据文件并存于文件系统中,其优点是对于某些特定的个体应用比较简单.且容易操作,但局限性很大,结构不灵活,难以实现数据共享。属性数据库设计时应当和空间图形数据库综合考虑,其数据结构应既能表达实体的数据特征,又能满足使用力强、灵活性好、冗余度小、管理程度高、逻辑操作方便等要求。因此,目前较为流行的设计是面向对象的设计方法和混合数据结构设计。

在GIS中常用的关系数据库管理系统有DBASE,Oracle,SQL Server,Informinx,INFo等。在本系统中我们使用SQL Servers 2000作为关系数据库管理卫生状况的属性数据。管理均采用现有的数据库管理系统和空间信息数据库的结合来实现GIS数据的管理。

一个大的空间数据库通常将空间数据与属性数据分别存储[4-5]。空间数据通常由各种GIS软件提供的数据模型方式存储,而属性数据则使用BDBMS存储,两者通过关键项进行连接,或通过指针连接。属性数据与空间数据常规的连接方法是通过一定标识码进行,如图1所示。

在本系统中系统在数据的存储上采用了属性数据与空间数据分离的机制[6-8]。首先,采用空间数据库引擎管理空间数据,企业级关系数据库系统SQL server管理属性数据。其中,SQL server存储的是基础数据,在地图中进行查询时实际使用的是基础数据的汇总,对病例的不同属性和不同类型的汇总统计,主要有按疾病名称的统计,按时间的统计,按发病区域的统计,按病例的临床分类的统计等。

本文的地理信息系统主要采用的是分区图表示法[9],将地理信息以分区的形式在其上加以载入图形符号、结构图和其他统计图来表示信息。对于分区图中的每一个分区表示的信息是不同的,要使用不同的颜色加以区分,在属性数据库中添加相应的颜色字段, 在使用GeoBeans做格式转换的时候,将其设置为属性数据库中添加的颜色字段,通过这种方式不同的地图分区可以获得不同的颜色表现。然后就是对图形数据和属性数据编辑。再将图形数据数字化到GIS中的时候,不可避免的出现错误,这里要对这些数据检查修正。另一方面则是对于属性数据的处理。

在空间数据库与属性数据库之间的数据交互主要是通过关系表中的关键项来维系的。关键项有两种,即主关键项和外部关键项。主关键项是用来定义存在性和惟一性的,即一个地理特征存在的话,主关键项将在该关系表中加入一个记录,而且只加入这一个记录,没有重复。通常在定义一个关键项时,它应该是个没有实际意义的项。例如对地籍数据来说,假若用地籍拥有者的名称做主关键项,那么当这个拥有者更换以后,表与表之间的关系便失去了,而使用地籍编码则能保证该地块在数据库中的惟一性。因为地块编码是人为赋给不具任何实际意义的项,一个地块一旦被划分,它的编码也就被确定了。 这样属性数据通过唯一标示的关键项,使图形数据与属性数据加载在信息系统中得以表现。

本文针对当前突发性公共卫生事件防治工作的迫切需求,利用GIS的较强的地理信息表现能力,将卫生状况的属性数据反映在地图当中,以便于进行可视化分析查询,从而快速做出相应决策。

参考文献:

[1] 吴信才.WebGIS地理信息系统参考手册[M].武汉:中国地质大学(武汉)信息工程学院,2001.

[2] 乌伦,张晶,唐大仕,等.基于WebGIS的体系结构研究[J].地理学与国土研究,2001.11(4):20-24.

[3] 郝启堂.wndowsNT4/Windows95高级开发指南[M].北京:电子工业出版社,1998.

[4] 张超,陈丙咸,乌肠伦.地理信息系统[M].北京:高等教育出版社,1995.

[5] webGIS用户使用手册[M].北京大学数字地球工作室,2000.

[6] 杨崇俊,王羽翔,王兴玲.万维网地理信息系统发展及前景[J].中国图象图形学报,2001,6(9):886-894.

[7] 毕硕本,王桥,徐秀华.地理信息系统软件工程的原理与方法[M].北京:科学出版社,2003.

[8] 宋关福,钟耳顺.WebGIS―基于Internet的地理信息系统[J].中国图象图形学报,1998,3(3):251-254.

[9] 乌伦,刘瑜,张晶.地理信息系统―原理方法和应用[M].北京:科学出版社,2001.

上一篇:网络安全态势感知系统简述 下一篇:一种用关键乐段对音乐进行检索的方法