APP下载

基于ArcGIS Engine的连云港海洋功能区划信息系统的设计与实现

2013-12-23窦长娥刘建红

海洋科学 2013年3期
关键词:连云港市区划图层

窦长娥, 刘建红

(淮海工学院 测绘工程学院, 江苏 连云港 222005)

海洋的开发、利用和保护已成为当今全球的热点[1-2], 为了更好地开发利用海洋资源, 保护环境, 科学合理地使用海域, 开发利用丰富的海洋资源是未来经济、社会发展的一个新领域。而海洋信息是开发海洋和建设海洋的基础, 为了更好地开发利用海洋, 必须掌握和管理海洋信息。李巧稚等[3]利用GIS技术对海洋功能区划管理信息系统框架进行研究。肖桂荣等[4]利用对象组件技术和网络共享技术建立海洋功能区划WebGIS系统, 实现区划信息的共建共享和网上公示。邬群勇等[5]以福建省海洋功能区划管理信息系统的建设为例, 对系统的总体结构、功能、数据库和系统集成等方面进行了探讨。滕骏华等[6]结合网络GIS集成技术, 建立了基于网络GIS的海洋功能区划管理信息系统, 并对海洋功能区划管理信息系统的三层结构框架和系统研制的关键性技术进行了研究。李晓等[7]利用MapX组件结合Visual Basic语言进行专题地理信息系统二次开发, 建立海洋功能区划管理信息系统。游建胜[8]阐述了海洋功能区划论——兼论福建省海洋资源环境及海洋功能区划。曹可[9]对海洋功能区划的基本理论与实证进行研究。针对连云港市大比例尺海洋功能区划多源海量数据的特点, 开发海量空间数据综合信息平台“连云港市海洋功能区划信息系统”, 是响应“国家海洋功能区划管理信息系统”的建设。本文基于已有成果采用的开发方法, 利用软件工程思想和地理信息系统相关软件, 以Embarcadero RAD Studio XE2为开发环境, 采用Delphi语言, 结合ArcGIS Engine提供的接口和方法进行程序设计, 完成基于ArcGIS Engine连云港海洋功能区划信息系统的设计, 实现对连云港市海洋功能区划信息的可视化管理和查询, 系统采用面向对象方法和组件技术进行开发, 能够提高系统的开发效率, 给用户提供高效直观的信息, 更好地利用连云港市的海洋功能区划数据, 提高海洋开发的合理性和海洋管理的科学性, 实现区划数据的动态管理和信息共享。

1 研究区概况

连云港市是江苏省管辖地级市, 位于江苏省东北部, 东西长129 km, 南北宽约132 km, 土地总面积7 444 km2, 岛屿陆域面积6.22 km2。连云港市海岸南起与盐城交界的灌河口, 北至苏鲁交界的绣针河口, 大陆标准海岸线长176.5 km, 其中赣榆县标准岸线46.4 km, 灌云县21 km, 市区109.1 km, 有江苏唯一的基岩港湾海岸40 km和仅有的砂质海岸 30 km。连云港市位于中国沿海的“脐部”, 区位优势极为突出。连云港市海洋功能区划是按各种海洋功能区的标准, 把海域划分为不同类型的海洋功能区单元的一项开发与管理的基础性工作, 根据海洋区域资源、环境、区位条件、开发现状等自然属性, 结合社会经济发展需求等因素, 确定各功能区域的主导功能和功能顺序, 合理开发利用海洋资源, 保护海洋生态环境, 规范海域开发利用秩序, 实现全市海洋经济持续、协调、有序的发展。

2 系统架构

系统设计开发是面向海洋管理层, 故系统利用ArcGIS Engine组件开发, 采用C/S模式架构, 运行于局域网中, 具有系统运行速度快、易于升级, 同时具有操作方便、界面友好以及图、文并茂等特点, 集成多源空间数据管理、应用模型开发和辅助决策支持, 实现海洋功能区划数据的管理与辅助分析功 能[5]。因此, 系统体系结构从逻辑上分为三部分: 数据层、逻辑层、应用层。系统数据层是整个系统的基础, 分为空间数据库和属性数据库, 为应用层的实现提供数据支持。系统逻辑层作为中间层连接上下两层, 并对各部分进行管理[10]。系统应用层的核心是区划图和区划信息的显示, 即提供最终成果供用户使用, 系统的总体结构见图1、流程见图2。

3 系统分析与设计

3.1 需求分析

图1 系统总体结构设计图 Fig. 1 The framework diagram of the overall structure of the system

图2 系统总体流程图 Fig. 2 The overall flowchart of the system

海洋功能区划信息系统是面向海洋管理者, 辅 助管理者能够及时采集、更新、高效管理海洋功能区划信息。就海洋功能区本身的含义来说, 是指根据海洋的自然资源条件、环境状况和地理位置, 并考虑到海洋开发利用现状和社会经济发展需求所划定的, 具有特定主导功能, 有利于资源的合理开发利用, 能够发挥最佳效益的区域。而海洋功能区划, 是指依据海洋自然属性和社会属性, 以及自然资源和环境特定条件, 界定海洋利用的主导功能和使用范围。显然, 海洋功能区划信息系统关键在于提供海洋功能区的空间位置、地理范围、面积大小、使用现状和管理要求等方面的信息。

从功能角度来讲, 系统除了应该包含基本功能以外, 还要涉及空间数据和属性数据, 需要对各类数据进行统一管理、查询、调用, 包括数据入库、元数据库管理、数据库还原备份、查询分析等; 系统应涵盖海洋功能区划的各项信息, 包括海洋功能区的区划图、各级代码、名称、地区、地理范围、面积、使用现状和管理要求等, 以便于管理者对各区进行统一管理和规划, 及时更新各方面的信息; 由于系统用户为海洋管理者, 因此需要完善的用户管理功能, 各类用户根据自身权限对相应功能进行操作, 无法访问未赋予权限的信息及功能, 以保证规划数据的安全性。

3.2 功能设计

根据用户的需求, 连云港市海洋功能区划信息系统功能应能覆盖整个连云港市海洋功能区域, 收集、整理、提取和存储当前连云港市海洋功能区的多源数据, 构建一个集信息查询与管理为一体的平台。系统功能模块采用树状结构分级显示, 第一级主模块下又分为系统基本功能、图形操作功能、信息查询分析功能和数据管理功能4个二级模块; 二级模块又细分为子模块[11]。具体系统功能模块(图3)。

图3 系统功能结构示意图 Fig. 3 The function structure diagram of the system

3.2.1 系统基本功能模块

该模块包含GIS应用系统应具备基本功能, 如地图操作功能(放大、缩小、选择、平移等)、文件管理功能(打开、新建、保存、打印等)、系统维护管理功能(登录、退出等)。

3.2.2 图形操作功能模块

该模块主要提供图形操作功能, 图形加载导入功能主要以快捷菜单的形式实现; 图形编辑功能以快捷菜单的形式, 实现查看图层属性表、删除图层、图层上下移动等功能; 图形整饰功能主要在布局中实现对地图输出前的简单整饰。

3.2.3 信息查询分析功能模块

该模块实现海洋功能区划信息的双向查询功能, 既可根据图形查询到对应的属性信息, 也可根据一些属性限制查询到对应的图形、斑块。而叠置分析功能实现功能叠置区的分析, 以便用户深入了解该区域的用途。缓冲区分析实现功能区周围环境影响的分析, 使海洋管理者采取更加合理的措施, 保护好海洋环境。

3.2.4 数据管理模块

该系统包含空间数据库和属性数据库, 二者集成共享操作均通过数据库操作模块实现。空间数据和属性数据入库及数据库更新操作, 为数据库提供多源数据调用基础; 元数据库操作, 主要对属性数据库信息(名称、表单、字段)进行修改或删除, 使属性数据库保持准确性。

3.3 数据库设计

3.3.1 空间数据库设计

系统空间数据有栅格数据和矢量数据两种, 表现为海洋功能区划中多种功能区要素类的集合及基础区划图, 采用Geodatabase空间数据模型对数据进行组织和管理, 该模型是一种面向对象数据模型[12-13], 它支持在标准DBMS中存储和管理地理信息, 可应用于多种DBMS结构和多用户访问, 且大小可伸缩。系统根据连云港市海洋功能区的划分, 共建立9个图层(图4)。系统海洋功能区划栅格数据主要来自于 江苏省海洋功能1∶100万区划图中的连云港市图幅。首先在ArcMap中选择特征明显的12个控制点, 根据图上经纬度坐标, 将其转化为大地坐标, 调用Georeferencing, 完成对该图的配准; 然后依次进行每个图层的矢量化和符号化, 对图层要素增加相应的属性字段。

图4 空间数据库结构图 Fig. 4 The spatial database structure diagram

3.3.2 属性数据库设计

属性数据来源于江苏省海洋功能区登记表, 从中选择连云港市海洋功能区的信息, 数据内容主要包括海洋功能区的二级类代码和名称、地区、地理范围、面积、使用现状和管理要求, 这些数据的准备将为系统的查询功能提供后台支持,将数据存储到InterBase数据库中。而基于Delphi的开发环境, 用InterBase自带的IBX控件, 采用TIBDatabase. databasename方法直接连接到LYG.GDB, 使用方便且开发、维护费用低, 数据库中的设计表结构见表1。

表1 连云港市海洋功能区属性表结构 Tab. 1 The attribute table structure of Lianyungang marine functional zonation

4 系统实现

4.1 系统主界面

系统主界面, 包括菜单栏、制图工具栏、鹰眼图、状态栏、地图管理、查询、分析、图形显示、布局、属性和数据管理等窗口。系统主界面是整个系统的核心, 通过它用户能够实现系统包含的所有功能(图5), 具体功能的实现用到了 MapControl控件、TOCControl控件、PageLayoutControl控件和SaveDialog控件等。

4.2 基本功能操作

图5 系统主界面 Fig. 5 The main interface of the system

基本操作功能主要包括菜单栏、快捷菜单和工具栏。其中, 菜单栏包括文件、视图、工具、系统 管理和帮助等, 实现图形的输出、视图和工具窗口的切换显示、系统帮助文档等; 快捷菜单主要运行于图形显示窗口, 包括对地图的选择、平移、放大、缩小和全屏等功能, 便于用户操作; 工具栏为地图显示窗口和布局窗口提供基本操作功能, 使用户对系统的操作更加直观便利; 具体实现利用LoadMxFile, LoadDwgFile, CoControlsSaveAsDocCommand, ExportMapToFile, RzPageControl1. ActivePage, ataModule1.ClientDataSet.open等方法实现加载文件、保存、输出和视图布局、属性等功能。

4.3 图形操作

地图操作模块包括图形管理窗口和图形整饰窗口。图形管理窗口包括图层加载和编辑功能, 图层操作相关功能都以快捷菜单形式实现, 主要包括加载图层、图层上移、图层下移、移除图层和查看属性等, 可实现对图层的不同操作, 以达到用户的需求。图形整饰窗口通过基本布局工具栏和快捷菜单实现为地图添加指北针、图例和比例尺等(图6), 具体实现方法是: CoControlsSelectFeaturesTool.Create, CoControlsMap-PanTool.Create, CoControlsMapZoominFixedCommand. Create, CoControlsMapZoomoutFixedCommand.Create, Mapcontrol1.ActiveView. FullExtent实现图形管理的选择、平移、放大、缩小、全图等功能, 而通过AddShape- File, MoveLayer, DeleteLayer和RzStringGrid1.Cells[I,J]实现图层的添加、上下移动、删除和查看属性等功能, 而Insert Legend, InsertNorthArrow, InsertScaler等方法实现添加图例、指北针、比例尺等功能。

图6 地图整饰图 Fig. 6 Map decoration

4.4 数据查询

数据查询模块依赖于空间数据和属性数据, 通过关键字段的联接, 实现海洋功能区划信息的双向查询功能, 即根据图形查询到其对应的属性信息, 同样根据一些属性限制查询到其对应的空间图形、斑块。示例查询(图7), 即通过函数 GetFieldInfo ByLayer来实现, 具体实现代码是:

function GetFieldInfoByLayer(pLayer: ILayer; out FieldName:TStringList; out FieldType:TStringList): Boolean;

var

i: Integer;

pLayerFields: ILayerFields;

begin

pLayerFields := pLayer as ILayerFields;

FieldName.Clear;

FieldType.Clear;

for i := 0 to pLayerFields.FieldCount - 1 do

begin FieldName.Add(pLayerFields.Field[i]. AliasName);

FieldType.Add(GetFieldType(pLayerFields.

Field[i].type_));

end;

Result := True;

end;

而通过属性查询图形用到的函数是:

SearchByPropInfo(aeMapControl:TMapControl;pLayer: ILayer;sWhere:string;out iCounts:Integer;bFlash: Boolean):IFeatureCursor。

图7 图形对属性查询 Fig. 7 The Graphics for attribute query

4.5 数据分析

数据分析模块包括叠置分析和缓冲区分析。

通过叠置分析, 使用户清晰明了哪些区域同时包含了哪些不同的功能区(图8), 使用BasicGeo- Processor接口进行叠置运算, 具体实现代码是:

pBasicGeoprocessor:=coBasicGeoprocessor.Create as IBasicGeoprocessor;

pOutputFeatureClass:=pBasicGeoprocessor.Clip (pInputTable, False,pOverlayTable,False,0,pFeatureClassName);

图8 叠置分析图 Fig. 8 Overlay analysis

通过缓冲区分析, 可以实现对该功能区在某个范围内造成的影响在图上得以直观地展现, 分析在该范围内其他功能区的相关情况, 分析到的区域则高亮显示(图9), 具体实现代码是:

pGeometry:=GetGeometryByFeatureID(MapControl1, iLayerID,i);

pTopOprtor:=pGeometry as ITopologicalOperator;

MapControl1.FlashShape(pTopOprtor.Buffer(j), 5,1000,EmptyParam);

图9 缓冲区分析图 Fig. 9 Buffer analysis

4.6 数据管理

该模块实现对空间数据和属性数据的管理。空间数据的入库更新主要通过制图工具栏对图形要素进行操作, 如删除、修改、新增功能区等。属性数据的更新和元数据库操作功能在数据管理窗口中实现。只有管理员登录时, 数据管理窗口才显示, 由此保证系统的安全性, 管理员可以对属性数据进行更新、删除、修改等(图10), 管理员登录的具体实现代码是:

if(edt1.Text = username) and (edt2.Text = password) then begin

Form1.TabSheet4.TabVisible:=True;

Form1.RzPageControl1.ActivePage:=form1.Tab- Sheet4;

Form2.Close;

DataModule1.ClientDataSet.open; end else begin

Application.MessageBox('密码与用户名不符','警告',MB_OK+ MB_ICONWARNING);

end;

5 总结

本文在分析各地海洋功能区划信息系统研究的基础上, 结合当前海洋功能区划数据特点和业务需求, 将ArcGIS Engine和C/S模式引入到海洋功能区划信息系统中, 设计连云港海洋功能区划信息系统框架和功能模块; 构建连云港海洋功能区划信息空间数据库和属性数据库, 空间数据库采用Geodatabase模型进行组织, 属性数据库采用InterBase数据库进行管理, 从应用角度为空间数据管理和信息共享提供一种可行的解决方案, 实现了多源异构数据的统一管理和联合调用, 最后根据系统框架和数据库模型, 利用ArcGIS, ArcGIS Engine, InterBase数据库及Delphi实现连云港海洋功能区划信息系统, 它是“数字海洋”建设的一个重要组成部分, 将纳入“数字海洋”建设的总体框架之中, 为海洋的开发利用、海洋环境保护和海洋资源管理等信息化奠定技术和数据基础, 解决海洋利用开发和保护, 实现海洋资源可持续发展的有效手段。

图10 数据管理窗口示例图 Fig. 10 Data management window

[1] 克拉克 约翰 R. 海岸带管理手册[M]. 吴克勤, 杨德全,盖明举, 译. 北京: 海洋出版社, 2000: 378-425.

[2] 孙洪. 论“九五”海洋科技发展的战略与对策[J]. 海洋与湖沼, 1998, 29(5): 453-457.

[3] 李巧稚, 刘百桥, 林宁. 海洋功能区划管理信息系统框架研究[J]. 海洋通报, 2001, 20(2): 51-56.

[4] 肖桂荣, 邬群勇, 郭朝珍. 海洋功能区划WebGIS的设计与实现[J]. 福州大学学报(自然科学版), 2002, 30(3): 319-322.

[5] 邬群勇, 王钦敏, 肖桂荣. 海洋功能区划管理信息系统[J]. 地理信息科学, 2003, 1: 45-48.

[6] 滕骏华, 黄韦艮, 孙美仙. 基于网络GIS的海洋功能区划管理信息系统[J]. 海洋学研究, 2005, 23(2): 56-63.

[7] 李晓, 张剑锋, 林忠, 等. 基于MapX+Visual Basic的专题地理信息系统二次开发——以开发海洋功能区划管理信息系统为例[J]. 福州大学学报(自然科学版), 2002, 18(4): 105-109.

[8] 游建胜. 海洋功能区划论——兼论福建省海洋资源环境及海洋功能区划[M]. 北京: 海洋出版社, 2003.

[9] 曹可. 海洋功能区划的基本理论与实证研究[D]. 沈阳: 辽宁师范大学, 2004.

[10] 许懿娜. 基于AE的城乡土地利用规划集成信息系统设计与实现[D]. 成都: 西南交通大学, 2010.

[11] 王方雄, 马凯, 徐惠民. 基于ArcGIS Engine的海洋生态系统健康评价信息系统研究[J]. 海洋开发与管理, 2010, 5(27): 14-16.

[12] 刘斌. 空间数据管理浅析[J]. 测绘通报, 2006, 12(9): 57-59.

[13] 陈毅龙. 基于Geodatabase的土地利用规划数据库的设计与实现[J]. 徐州工程学院学报(自然科学版), 2009, 24(2): 66-71.

猜你喜欢

连云港市区划图层
连云港市实施“智云安全护航工程”
《莲年有鱼》
林芝市雷电风险区划
基于“三线一单”的环境功能区划实证研究
学习母鸡
川渝传统民居区划的环境蕴意
巧用混合图层 制作抽象动感森林
图层法在地理区域图读图中的应用
跟我学添加真实的光照效果
浅析“递层优化法”在矿井制图中的应用