999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ArcGIS Engine與XML的通用空間數據建庫系統

2018-04-27 08:19:40江,周
地理空間信息 2018年4期
關鍵詞:系統

李 江,周 浩

(1.南京集艾思軟件科技有限公司,江蘇 南京 210009)

各行各業已從信息化、數據庫化發展到數據整合、數據統一、云平臺階段,行業內部需要將各種信息系統整合成一個平臺,供行業內云共享。但是目前,空間數據庫缺少通用性的建庫工具[1,2]。如何把已經形成的大容量、多冗余數據進行統一,是擺在各行業前面的頭等問題。實現通用的空間數據建庫系統,要求結合各行業自身特點,把建庫工作簡單化、標準化,把各種資源數據整合成一個統一平臺,為大數據應用打下堅實的基礎。

1 實現技術

通用的空間數據建庫系統,關鍵技術基于ArcGIS Engine與XML實現,ArcGIS Engine利用接口負責空間數據的定義、輸入、處理與輸出;XML承擔著數據字典、數據配置、業務標準的角色。

1.1 ArcGIS Engine

ArcGIS Engine是ESRI公司產品。它有完備的嵌入式GIS 組件庫和工具庫,使用ArcGIS Engine開發的GIS應用程序可以脫離ArcGIS Desktop而運行。它的數據提取快速,是穩定性好的多優勢平臺[3]。

1.2 XML

可擴展標記語言XML[4]具有定義嚴格、結構清晰、靈活易讀的特點,可以用來描述各種復雜信息。XML可以對文檔和數據進行結構化處理,在不同業務之間進行交換,實現動態內容生成、企業集成和應用開發。

2 實現方法

基于ArcGIS Engine與XML實現通用的空間數據建庫系統,技術實現的關鍵點主要在如下4個功能模塊:建庫坐標系統開發;建庫數據字典開發;空間數據的導入匹配;空間數據的拓撲檢查。

2.1 坐標系統開發

ArcGIS Engine提供了一系列對象供開發者管理GIS系統的坐標系統,對大部分開發者而言了解Proiected Coordinate System,GeographicCoordinateSystem,SpatialReferen ce Environment這3個組件類是非常有必要的。對于高級開發者而言,需要自定義坐標系統,了解更多對象,如Proiection,Datum,AngularUnit,Spheriod,PrimeMeridian和GeoTransformation等。通常使用3種方式定義坐標系統。

1)使用接口創建地理坐標系對象:

ISpatialReferenceFactory spatialReferenceFactory = new Spati alReferenceEnvironmentClass();

ISpatialReference spatialReference = spatialReference Factory.CreateGeographicCoordinateSystem((int)esriSRGeo CSType.esriSRGeoCS_WGS1984);

備注:ISpatialReference是地理坐標系統對象接口,esriSRGeoCSType、esriSRProiCSType是空間坐標枚舉。

2)自定義坐標系統:

用ArcMap工具定義好坐標系后導出成pri文件,再用IspatialReferenceFactory中的CreateESRISpatialRefe renceFromPRJFile方法創建坐標系。

//定義投影坐標工廠對象

ISpatialReferenceFactory spatialReferenceFactory = new Spati alReferenceEnvironmentClass();

//通過定義或者用戶導入的投影坐標文件創建坐標系統 , 創建 SpatialReference

IProjectedCoordinateSystem projectedCoordinateSystem =spatialReferenceFactory.CreateESRISpatialReferenceFromPRJFile(s trPath) as IProjectedCoordinateSystem;

3)配置坐標系統XML文件:

//定義數據流對象

StreamWriter objStreamWriter;

//投影坐標空模板或者用戶導入投影坐標

string strPath= Application.StartupPath + @"Models emp.prj";

string str 1954= "PROJCS["Beijing_1954",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],P ARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian"," + jx + "],PARAMETER["Scale_Factor",1.0],PARA METER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]";

//寫入數據流

objStreamWriter.WriteLine(str1954);

2.2 數據字典開發

通用數據建庫,首先要求數據詞典的靈活性。采用XML配置文件方式,實現數據字典的動態加載,數據字典可以認為是對數據的描述性信息以及數據間任何相關的附加信息[5]。根據通用建庫具體需求創建數據模型,在系統中設計匹配數據字典文件 ,用戶通過調整數據字典文件,靈活配置建庫模型。XML模型中包括設置字段名稱、字段代碼、字段數據類型、字段長度、值域范圍、字段條件等。

以 XML標準規范,建立數據字典清單:

//空間數據-圖層信息節點配置

//空間數據節點

//注釋:空間數據代碼

//注釋:空間數據名稱

//注釋:空間數據類型,0:注記;1:點 ;2:線 ;3:面

//注釋:空間數據所屬數據集

//注釋:空間數據必要性。M:必選;O:可選

//空間數據-字段信息節點配置

//空間數據代碼

//注釋:字段序號

//注釋:字段名稱

//注釋:字段代碼

//注釋:字段數據類型

//注釋:字段長度

//注釋:值域范圍。>0:大于0

//注釋:字段必要性。M:必選;O:可選

//通過Linq獲取XML字典信息:

//打開Xml文檔

XDocument xdocument = XDocument.Load(XmlFile); var Tabs = from TCs in xdocument.Element("Root").Elements() select new

{

//獲取所有空間數據基礎信息

TCName = TCs.Element("TCName").Value,

TCTabName = TCs.Element("TCTabName").Value ,

TCLX = TCs.Element("TCLX").Value,

……

};

var Cols = from Colinfo in xdocument.Element("Root").Elements("空間數據代碼") select new

{

//獲取某空間數據表的字段信息XH = Colinfo.Element("XH").Value,

ZDMC = Colinfo.Element("ZDMC").Value,ZDDM = Colinfo.Element("ZDDM").Value,……};

2.3 空間數據導入匹配

空間數據的導入格式,主要包括MDB、GDB、SHP、DWG等。需要將數據轉換成IFeatureClass,不同格式的數據需要不同的工作空間打開,再轉換成IfeatureClass。

//創建mdb格式工作空間

IWorkspaceFactory pmdbFC = new AccessWork spaceFactoryClass() ;

//創建gdb格式工作空間

FileGDBWorkspaceFactory pgdbFC =new FileGDB WorkspaceFactoryClass();

//創建shp格式工作空間

IWorkspaceFactory pshpFC = new Shapef i leWorkspaceFactor yClass();

//創建dwg格式工作空間

IWorkspaceFactory pcadFC = new CadWorkspace FactoryClass() ;

上面通過對應工作空間打開數據源,并轉換成IfeatureClass,通過如下代碼可以進行數據導入。

//獲取IFeatureClass對象后,再循環獲取數據導入目標數據集中:

ITable m_pTable = pFeatureWorkspace.OpenTable(layerName);

IRowBuffer pRowBuffer = m_pTable.CreateRowBuffer();

ICursor pCursor = m_pTable.Insert(true);

//循環加載記錄行中的數據

for (int i = 0; i < RowCounts; i++)

{

IRow pRow = pSearchCursor.NextRow();

IFeature tmpFea = pRow as IFeature;

pRowBuffer.set_Value(colIndex,value);

pCursor.InsertRow(pRowBuffer);

……

}

空間數據的匹配,負責將導入的空間數據與XML字典標準進行匹配。數據匹配第一步是確定來源表與目標表的對應關系;第二步確定空間表中來源字段與目標字段的對應關系,來源字段與目標字段的字段類型必須為包容關系,來源字段長度必須小于等于目標字段長度,來源字段中的數據必須可以正確地轉換為目標字段類型,例如數字類型可以轉換為字符串類型。匹配及轉換實現采用Visual Studio 2013常規類庫實現如圖1所示。

圖1 空間數據匹配實現界面

2.4 數據檢查

數據檢查在完成空間數據導入之后,對空間數據進行一般性檢查與拓撲檢查。

一般性檢查目標是空間圖層的屬性數據,檢查內容包括必選圖層在數據庫中是否存在、各個圖層屬性表結構是否正確、必填字段是否有缺失、字段中的數據是否超出值域范圍[6],檢查完成給出檢查日志。

拓撲檢查模塊檢查空間圖層的邏輯關系,開發時遵從模塊可配置擴展的原則,用戶可根據業務需要配置一份拓撲檢查內容。為了不影響原數據的完整性,系統將重新創建備份空間數據庫與拓撲數據集,拓撲檢查將在該數據集中進行。檢查完成后可方便地查看錯誤類型與錯誤來源等信息,如需查看更加詳盡的信息可以在ArcMap軟件中查看拓撲數據集。

2.4.1 一般性檢查

1)檢查必選圖層。使用SQL語句,循環查找必選圖層是否存在。

2)檢查圖層屬性表結構是否正確、必填字段是否缺失。獲取圖層結構后,通過填充至DataTable,循環對比字段數據類型是否正確、必填字段是否存在。dt.Columns[字段代碼].DataType可以獲取字段數據類型。

3)檢查字段值域。獲取XML值域要求或具體內容,與屬性內容比較,用DataTable比較的方式。

2.4.2 拓撲檢查

ArcEngine中封裝了一組拓撲接口,用于用戶定制拓撲關系規則,幫助用戶發現存在的拓撲關系錯誤。

2.5 數據瀏覽

該模塊提供空間數據圖形與屬性的查看,并提供數據加載、放大、縮小、移動等基本功能。

2.5.1 圖層加載

通過使用工廠接口模式加載數據,并將數據加載到地圖容器。

IWorkspaceFactory pmdbFC = new AccessWorkspace FactoryClass() ;

IFeatureWorkspace featureWorkspace= pWorkspaceFactory.OpenFromFile(“數據路徑”, 0) as IFeatureWorkspace;

IFeatureclass pFC= featureWorkspace.OpenFeatureClass (“圖層名稱”);

axMapControl1.AddLayer(pFC as ILayer); //將圖層加載到地圖容器

2.5.2 地圖工具的實現

在ArcEngine類庫中有豐富的Command控件用來與地圖控件進行操作和交互,全面采用COM技術、支持跨平臺、跨語言及多模式開發[7]。比如有一系列的地圖瀏覽控件、地圖查詢控件、選取控件、編輯控件來與MapControl和PageLayoutControl進行交互。

3 結 語

作為地理信息系統的重要組成階段,空間數據建設是至關重要的第一步,也是各種信息化建設的關鍵一步。本系統以可擴展標記語言XML,設計生成數據庫模型;采用ArcGIS Engine接口開發技術,建設通用的空間數據庫。能幫助業務人員快速建庫、矢量數據入庫、數據檢查、成果打包等,有效提高作業效率、提升作業品質。

[1] 左澤均,周順平.基于MapGIS數據中心構建基礎地理信息地圖集模型[J].地球科學:中國地址大學學報,2010,35(3):391-396

[2] 張龍,汪新慶.基于數據字典的空間數據庫通用建庫技術[J].國土資源遙感,2014,26(1) :173-178

[3] 黃雯翠,任福. 基于ArcEngine開發的應用數據平臺更新與維護[J].測繪與空間地理信息,2010,33(3):158-163

[4] 馮進,丁博,史殿習,等.XML解析技術研究[J].計算機工程與科學,2009,31(2):120-124

[5] 李連勝.Geodatabase在空間數據庫建庫中的應用[J].現代計算機(專業版),2009(12) :131-134

[6] 李江,周浩,羅吳亮.ArcGIS空間數據庫中拓撲錯誤的檢查與批量處理方法[J].北京測繪,2015(2) :5-8

[7] 尹暉,王艷濤,張曉鳴,等. 基于ArcEngine的輸電走廊三維可視化系統設計與實現[J] .測繪地理信息,2015,40(2) :14-16

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 欧美成人亚洲综合精品欧美激情| 欧美一区精品| 国产95在线 | 69av免费视频| 国产精品深爱在线| 午夜天堂视频| 欧美日韩中文国产| 亚洲国产天堂久久综合| 国产免费精彩视频| 亚洲无码在线午夜电影| 亚洲无码高清一区二区| 超薄丝袜足j国产在线视频| 精品久久香蕉国产线看观看gif| 国产黄网永久免费| 亚洲天堂网2014| 亚洲三级a| 亚洲天堂成人| 久热精品免费| 日韩精品无码免费专网站| 国产日本一区二区三区| 欧美日韩亚洲综合在线观看| 午夜国产在线观看| 看看一级毛片| 国产精品偷伦在线观看| 国产女同自拍视频| 五月天天天色| 国产a在视频线精品视频下载| 91无码人妻精品一区| 婷婷综合色| 久草中文网| 亚洲开心婷婷中文字幕| 亚洲无线一二三四区男男| 亚洲欧美一区二区三区蜜芽| 欧美亚洲一区二区三区导航| 国产成人盗摄精品| 欧美精品色视频| 中文字幕一区二区视频| www.精品国产| 亚洲人妖在线| 国产欧美精品专区一区二区| 欧美日本二区| 久久久久亚洲AV成人网站软件| 亚洲国产天堂久久综合| 国内精品免费| AV网站中文| 麻豆精品久久久久久久99蜜桃| 日韩成人在线网站| 欧美精品另类| 奇米精品一区二区三区在线观看| 国产亚洲精品精品精品| 欧美人与动牲交a欧美精品| 福利国产微拍广场一区视频在线| 97久久超碰极品视觉盛宴| a亚洲视频| 亚洲综合色婷婷中文字幕| 在线va视频| 少妇精品网站| 欧美激情第一区| 一本一道波多野结衣av黑人在线| 欧美五月婷婷| 91成人精品视频| 久久国产精品国产自线拍| 婷婷丁香色| 久无码久无码av无码| 欧美另类精品一区二区三区| 欧美一级高清视频在线播放| 久草中文网| 国精品91人妻无码一区二区三区| 97免费在线观看视频| 国产亚洲欧美日本一二三本道| 国产玖玖玖精品视频| 国产亚洲精品97AA片在线播放| 中文字幕乱妇无码AV在线| 亚洲视屏在线观看| av在线手机播放| 伊人久久综在合线亚洲91| 美女啪啪无遮挡| 欧美精品成人一区二区在线观看| 日韩a级毛片| 亚洲视屏在线观看| 黄色福利在线| vvvv98国产成人综合青青|