竇長娥, 劉建紅
(淮海工學院 測繪工程學院, 江蘇 連云港 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連云港海洋功能區劃信息系統的設計, 實現對連云港市海洋功能區劃信息的可視化管理和查詢, 系統采用面向對象方法和組件技術進行開發, 能夠提高系統的開發效率, 給用戶提供高效直觀的信息, 更好地利用連云港市的海洋功能區劃數據, 提高海洋開發的合理性和海洋管理的科學性, 實現區劃數據的動態管理和信息共享。
連云港市是江蘇省管轄地級市, 位于江蘇省東北部, 東西長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。連云港市位于中國沿海的“臍部”, 區位優勢極為突出。連云港市海洋功能區劃是按各種海洋功能區的標準, 把海域劃分為不同類型的海洋功能區單元的一項開發與管理的基礎性工作, 根據海洋區域資源、環境、區位條件、開發現狀等自然屬性, 結合社會經濟發展需求等因素, 確定各功能區域的主導功能和功能順序, 合理開發利用海洋資源, 保護海洋生態環境, 規范海域開發利用秩序, 實現全市海洋經濟持續、協調、有序的發展。
系統設計開發是面向海洋管理層, 故系統利用ArcGIS Engine組件開發, 采用C/S模式架構, 運行于局域網中, 具有系統運行速度快、易于升級, 同時具有操作方便、界面友好以及圖、文并茂等特點, 集成多源空間數據管理、應用模型開發和輔助決策支持, 實現海洋功能區劃數據的管理與輔助分析功 能[5]。因此, 系統體系結構從邏輯上分為三部分: 數據層、邏輯層、應用層。系統數據層是整個系統的基礎, 分為空間數據庫和屬性數據庫, 為應用層的實現提供數據支持。系統邏輯層作為中間層連接上下兩層, 并對各部分進行管理[10]。系統應用層的核心是區劃圖和區劃信息的顯示, 即提供最終成果供用戶使用, 系統的總體結構見圖1、流程見圖2。

圖1 系統總體結構設計圖 Fig. 1 The framework diagram of the overall structure of the system

圖2 系統總體流程圖 Fig. 2 The overall flowchart of the system
海洋功能區劃信息系統是面向海洋管理者, 輔 助管理者能夠及時采集、更新、高效管理海洋功能區劃信息。就海洋功能區本身的含義來說, 是指根據海洋的自然資源條件、環境狀況和地理位置, 并考慮到海洋開發利用現狀和社會經濟發展需求所劃定的, 具有特定主導功能, 有利于資源的合理開發利用, 能夠發揮最佳效益的區域。而海洋功能區劃, 是指依據海洋自然屬性和社會屬性, 以及自然資源和環境特定條件, 界定海洋利用的主導功能和使用范圍。顯然, 海洋功能區劃信息系統關鍵在于提供海洋功能區的空間位置、地理范圍、面積大小、使用現狀和管理要求等方面的信息。
從功能角度來講, 系統除了應該包含基本功能以外, 還要涉及空間數據和屬性數據, 需要對各類數據進行統一管理、查詢、調用, 包括數據入庫、元數據庫管理、數據庫還原備份、查詢分析等; 系統應涵蓋海洋功能區劃的各項信息, 包括海洋功能區的區劃圖、各級代碼、名稱、地區、地理范圍、面積、使用現狀和管理要求等, 以便于管理者對各區進行統一管理和規劃, 及時更新各方面的信息; 由于系統用戶為海洋管理者, 因此需要完善的用戶管理功能, 各類用戶根據自身權限對相應功能進行操作, 無法訪問未賦予權限的信息及功能, 以保證規劃數據的安全性。
根據用戶的需求, 連云港市海洋功能區劃信息系統功能應能覆蓋整個連云港市海洋功能區域, 收集、整理、提取和存儲當前連云港市海洋功能區的多源數據, 構建一個集信息查詢與管理為一體的平臺。系統功能模塊采用樹狀結構分級顯示, 第一級主模塊下又分為系統基本功能、圖形操作功能、信息查詢分析功能和數據管理功能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.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
系統主界面, 包括菜單欄、制圖工具欄、鷹眼圖、狀態欄、地圖管理、查詢、分析、圖形顯示、布局、屬性和數據管理等窗口。系統主界面是整個系統的核心, 通過它用戶能夠實現系統包含的所有功能(圖5), 具體功能的實現用到了 MapControl控件、TOCControl控件、PageLayoutControl控件和SaveDialog控件等。

圖5 系統主界面 Fig. 5 The main interface of the system
基本操作功能主要包括菜單欄、快捷菜單和工具欄。其中, 菜單欄包括文件、視圖、工具、系統 管理和幫助等, 實現圖形的輸出、視圖和工具窗口的切換顯示、系統幫助文檔等; 快捷菜單主要運行于圖形顯示窗口, 包括對地圖的選擇、平移、放大、縮小和全屏等功能, 便于用戶操作; 工具欄為地圖顯示窗口和布局窗口提供基本操作功能, 使用戶對系統的操作更加直觀便利; 具體實現利用LoadMxFile, LoadDwgFile, CoControlsSaveAsDocCommand, ExportMapToFile, RzPageControl1. ActivePage, ataModule1.ClientDataSet.open等方法實現加載文件、保存、輸出和視圖布局、屬性等功能。
地圖操作模塊包括圖形管理窗口和圖形整飾窗口。圖形管理窗口包括圖層加載和編輯功能, 圖層操作相關功能都以快捷菜單形式實現, 主要包括加載圖層、圖層上移、圖層下移、移除圖層和查看屬性等, 可實現對圖層的不同操作, 以達到用戶的需求。圖形整飾窗口通過基本布局工具欄和快捷菜單實現為地圖添加指北針、圖例和比例尺等(圖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
數據查詢模塊依賴于空間數據和屬性數據, 通過關鍵字段的聯接, 實現海洋功能區劃信息的雙向查詢功能, 即根據圖形查詢到其對應的屬性信息, 同樣根據一些屬性限制查詢到其對應的空間圖形、斑塊。示例查詢(圖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
數據分析模塊包括疊置分析和緩沖區分析。
通過疊置分析, 使用戶清晰明了哪些區域同時包含了哪些不同的功能區(圖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
該模塊實現對空間數據和屬性數據的管理。空間數據的入庫更新主要通過制圖工具欄對圖形要素進行操作, 如刪除、修改、新增功能區等。屬性數據的更新和元數據庫操作功能在數據管理窗口中實現。只有管理員登錄時, 數據管理窗口才顯示, 由此保證系統的安全性, 管理員可以對屬性數據進行更新、刪除、修改等(圖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;
本文在分析各地海洋功能區劃信息系統研究的基礎上, 結合當前海洋功能區劃數據特點和業務需求, 將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.