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

基于SharpMap的GIS系統設計與實現

2018-03-26 02:14:46張海兵
軟件導刊 2018年3期
關鍵詞:數據庫功能分析

張海兵

摘要:

為了突破國外地理信息產業的技術封鎖,以及商業地理信息軟件對用戶的限制,降低地理信息軟件開發成本,基于桌面開源GIS軟件SharpMap,從源碼體系上分析其數據訪問、圖層擴展和地圖渲染等機制,結合GIS中間件設計并實現了GIS系統。該系統具備較好的地圖渲染功能,并支持GIS的空間分析。采用SharpMap開發的系統可突破商業軟件的限制,降低用戶成本。

關鍵詞:

開源軟件;SharpMap;GIS中間件;空間分析

DOIDOI:10.11907/rjdk.172797

中圖分類號:TP319

文獻標識碼:A文章編號文章編號:16727800(2018)003013105

英文摘要Abstract:In order to break the technical blockade of foreign geographic information industry, break the restriction of commercial geographic information software to users, and reduce the development cost of GIS software, this paper analyzes data access, layer extension and map rendering mechanism of SharpMap source code. Based on the SharpMap, GIS system has been designed and implemented with GIS middleware, which support vector layer mapping rendering and GIS spatial analysis function. The GIS system based on SharpMap could break the limitation of commercial and reduce user cost.

英文關鍵詞Key Words:open source software; SharpMap; GIS middleware; render;spatial analysis

0引言

隨著云計算等技術的不斷發展與變革,促進了地理信息系統的發展,涌現出越來越多的開源GIS軟件。SharpMap作為開源GIS桌面軟件系統,是基于.Net開發的Map渲染類庫,支持多種數據格式和幾何圖形類型,且開發便捷。

國內研究者基于SharpMap開展了多方面的應用研究。趙欣等[1]利用開源軟件SharpMap實現了SharpMap在露天礦卡車調度系統監控端的應用;徐齊行等[2]采用SharpMap 進行了GML可視化研究;方靜濤等[3]基于 C#和 SharpMap實現了淺層地溫能資源數據庫管理系統的研發;夏正龍等[17]介紹了采用SharpMap將2 300多個降水實況離散點顯示成降水色斑圖的方法;張學寶等[4]分析了SharpMap的總體架構設計,介紹了軟件核心功能的設計和實現原理;劉力赟[5]基于SharpMap對航線設計與呈現進行了研究;陳大東[6]利用SharpMap進行二次開發以實現供水管網調度;張蘭慧[7]利用SharpMap在.Net環境下開發了基于B/S結構的青海省氣象信息網絡數據庫。但國內研究者對于SharpMap結構的研究仍較為有限,并未基于SharpMap進行完整的GIS系統設計。本文將對SharpMap的結構進行分析,設計一套基于SharpMap的GIS系統。

1SharpMap體系及底層機制

1.1體系結構

本文以SharpMap 0.9版本為例分析其體系結構,其由IProvider、Features、Feature Layers、Presentation、Reprojection、Map、Display Views 共7層組成,體系結構如圖 1所示。

(1)IProvider層:作為一個底層的接口引擎,便于SharpMap讀取各種格式的數據,并支持擴展添加新的數據類型。

(2)Features層:通過IProvider 接口層讀取的GIS 數據都轉化為點、線、多邊形、多點、多線等幾何類型和幾何集合等。

(3)Feature Layers層:特征圖元圖層,組織各種幾何圖元,結合Reprojection 實現各種坐標空間的圖元投影。

(4)Presentation層:實現各種矢量要素的渲染,設置要素的Style。

(5)Reprojection層:定義圖元的坐標系統,或者將圖元從一種坐標空間投影到另一種定坐標空間,實現投影轉換。

(6)Map層:提供定制工具,用戶也可自定義工具。

(7)Display Views 層:為了便于開發,提供定制的桌面和Web控件,用戶也可自定制控件。

1.2源碼分析

圖2是SharpMap在VS 2012下的結構視圖,動態庫SharpMap.dll由SharpMap 和其他20多個次級名稱空間組成,其中SharpMap名稱空間下的Map類為系統的核心所在。SharpMap是工程的主體。

(1)Map類:位于SharpMap命名空間下,通過創建Map對象的實例生成地圖。Map對象由包含的Layer對象組成Layers集合,通過GetMap方法來Render 地圖。

(2)Converts名稱空間:提供數據轉換服務,實現SharpMap支持的幾何圖形與WKT、WKB格式的相互轉換。

(3)Geometries名稱空間:包括SharpMap要使用到的各種幾何類及其接口類,是SharpMap的基礎之一,其結構如圖3所示。所有幾何對象都繼承自Geometry這個抽象類,其中定義了幾何對象應該具備的公共操作。

(4)Layers名稱空間:包括ILayer 接口、Layer 集合類等,代表地圖的圖層。圖4表示了各Layer圖層之間的關系。

(5)Layer 是一個抽象類,實現了ILayer 接口。Layer 目前有6個子類,分別是WmsLayer、LabelLayer、LayerGroup 、TileWmsLayer、TileLayer和VectorLayer,分別代表6種不同圖層。

(6)Providers名稱空間:包括IProvider接口和Shape文件、MsSQL數據、MsSqlSpatial、WFS等數據的讀取實現,為SharpMap提供數據讀取支持。

(7)Rendering名稱空間:包括矢量渲染器類和幾個專題圖渲染器類,該類可以將幾何對象根據其Style設置渲染為一個System.Drawing.Graphics對象。

(8)Styles名稱空間:該名稱空間主要提供了圖層的樣式設置類,例如線樣式、點樣式、填充樣式等,其結構如圖 5所示。

SharpMap.Extensions是對SharpMap的擴展,包括對圖層支持、數據支持及數據轉換的擴展。

Forms名稱空間包含MapImage控件和MapBox控件,封裝了Map類,用于Windows Form編程。

1.3數據訪問機制

對于不同數據格式的訪問都實現IProvider 接口,每一種數據的打開、關閉、縮放、查詢等操作的具體實現可能并不相同,但都遵循統一的接口標準。SharpMap通過實現IProvider接口,支持對Shapefile數據、SQL、OleDB、Oracle、PostGIS[9]、OGR、WMS Server、幾何圖形數據集等數據來源的訪問。

其中,SharpMap的VectorLayer和LabelLayer類的DataSource屬性為IProvider接口。通過設置VectorLayer.DataSource和LabelLayer.DataSource,可以獲得VectorLayer和LabelLayer圖層。SharpMap對數據的訪問支持如圖6所示。

1.4圖層擴展機制

在SharpMap的擴展庫中提供了對GDAL[8]柵格圖層的支持。由于GdalRasterLayer類的構建過程中用到了GDAL庫,且實現了SharpMap中的ILayer接口和抽象類Layer,使得SharpMap項目可以讀取GDAL柵格數據。其中GdalRasterLayer類的構建過程如圖7所示。

1.5地圖渲染機制

地圖的渲染包括地圖創建、圖層創建、樣式設置、圖層添加、GetMap渲染等步驟。在開發過程中渲染的具體實現如下:①使用Map對象調用公有函數GetMap();②采用GetMap方法遍歷每一個Layer圖層,每個圖層調用Layer 的公有函數Render();③各個 Layer 開始渲染自己,若圖層為柵格數據或WMS數據,則返回范圍內的圖片。若為VectorLayer,則轉到第4步;④矢量圖層調用IProvider接口中的GetFeaturesInView()函數,返回檢索到對象列表;⑤遍歷列表中的每個對象,每個對象再調用VectorRenderer類中的不同方法來渲染自己;⑥在VectorRenderer類的不同方法中,還需調用TransformToImage()函數,返回.Net 的一個繪圖對象;⑦GDI+會根據不同對象的不同Style進行渲染。

2系統設計

2.1系統結構設計

本系統為三層體系架構,包括數據層、應用層、客戶層,如圖 8所示。數據層包含本地文件和空間數據。本文通過空間數據引擎訪問空間數據庫中的數據;應用層通過中間件實現;客戶層即表現層,展示相應的處理結果。

本系統采用PostGIS[9]插件作為空間數據引擎。利用Geoserver[10]發布來自文件數據庫的數據服務。同時,Geoserver也可發布來自PostGIS的服務,但在本系統中并未應用。

系統中間件包括OGR、GDAL、NTS[11]、EasyGIS[12]、GeoAPI.NET、BruTile等。OGR和GDAL是分別處理矢量和柵格數據的開源庫,在本系統中采用這兩個開源庫擴展系統支持的數據格式,從而實現對多種矢量和柵格數據的支持;NTS是GIS分析和操作的類庫,采用GeoAPI.NET和NTS實現對幾何圖形的操作,從而為擴展SharpMap功能、實現GIS的空間分析功能打下基礎;采用BruTile可實現對網絡在線地圖的訪問;采用開源EasyGIS的動態鏈接庫EGIS.ShapeFileLib可實現矢量數據的導出和矢量數據的格式轉換。

2.2系統功能設計

系統總體功能結構按不同內容分為8個部分,如圖10所示。

(1)地圖控制功能:包括新建地圖和導出地圖。在導出地圖功能中實現當前地圖的導出,以供地圖打印。

(2)基本功能:包括地圖拉框放大、拉框縮小、固定放大、固定縮小、全圖顯示、漫游、點量測、距離測量、面積測量等多種基本功能。

(3)圖層控制功能:包括每個圖層的移除、縮放到圖層、單個圖層顯示和關閉、導出數據、圖層屬性信息。其中圖層的屬性信息包含Symbology、Lables和Source三部分。Symbology中可以對圖層進行符號化設計以及漸變色渲染;Lables中可實現對圖層的標注功能;Source中可查看圖層的范圍、來源、地理坐標系統和投影坐標系統。此外,對于矢量數據可以查看其屬性表信息以及屬性表信息的導出。

(4) 目錄樹控制:以目錄樹的形式列舉出系統中加載的地圖,且包含每個圖層的符號化信息,可以對目錄樹中的所有圖層進行開關、展開折合操作,且可以添加新圖層。目錄樹可同時支持矢量圖層數據與柵格數據的控制。

(5)空間分析:原型系統提供數據的空間分析功能,包括緩沖區分析、疊加求交分析、擦除分析、均值差除等,以供用戶進行特定的分析。

(6)地圖服務模塊:在聯網情況下,訪問在線必應地圖和wiki地圖。此外,可實現WMS和WFS的服務功能。

(7)控制模塊:包括GeoServer的啟動、停止和管理。

(8)數據庫管理模塊:包括數據庫連接、數據庫連接字符串設置以及數據庫圖層加載。

3系統實現

系統界面一般采用圖像界面表達方式,分為菜單欄、工具欄、狀態欄、圖層目錄樹(圖層控制界面)、地圖窗口,主界面如圖11所示。

本系統可實現常用的GIS系統功能,如數據導出、圖層信息查詢、圖層屬性設置等。對于矢量圖層提供單一符號進行圖層渲染,如圖12所示。此外,還提供漸變色的方式進行渲染,如圖13所示。湖北省基礎矢量數據渲染效果如圖14所示,驗證了本系統具備較好的制圖渲染功能。

本系統結合中間件NTS實現GIS的空間分析功能,包括緩沖區分析、疊加求交、均值擦除、擦除分析等。

根據實現的空間功能,可以進行案例分析。以市區擇房為例進行分析,實際案例如下:

(1)問題:如何找到環境好、購物方便、小孩上學方便的居住區地段?

(2)具備的數據:①城市市區主要交通要道(network_st.shp);②商業中心分布圖(Marketplace.shp);③學校分布圖(school.shp);④名勝古跡分布圖(famous place.shp)。

(3)要求尋求的區域滿足以下條件:①離主要交通要道200m之外,以減少噪音污染;②在商業中心的500m服務范圍之內;③距學校距離750m之內,以方便小孩上學;④距名勝古跡500m之內,環境優雅。

采用案例提供的擇房數據進行空間分析,擇房原始數據效果如圖 15所示,空間分析擇房選址結果如圖 16所示。

通過擴展本系統支持柵格數據訪問,打開湖北省的DEM數據,效果如圖17所示。

4結語

本系統以SharpMap為GIS客戶端基礎平臺,設計了以PostGIS為空間數據引擎,GeoServer為WFS服務器,NTS、GDAL、OGR、GeoAPI.NET等為中間件的GIS系統,較好地實現了一般GIS系統的功能,并以湖北省矢量數據驗證了本系統的制圖渲染功能,以擇房案例驗證了本系統的空間分析功能。基于SharpMap進行GIS系統開發,可以突破商業軟件的限制,降低用戶成本。

但本系統對矢量數據的符號化僅限于利用色彩進行變更,并未提供通過圖片或定制符號進行符號化的功能。此外,本文只在C/S下進行SharpMap分析和開發,后續研究將進一步完善并實現B/S系統下的定制開發。

參考文獻參考文獻:

[1]趙欣,楊多志,于沿濤,等.SharpMap在露天礦卡車調度系統監控端的應用[J].露天采礦技術,2009(5):7375.

[2]徐齊行,敖杰剛.基于SharpMap的GML可視化研究與實現[J].測繪標準化,2012(6):1619.

[3]方靜濤,張延軍,黃賢龍,等.基于C#和SharpMap的淺層地溫能資源數據庫管理系統研究和開發[J].世界地質,2012,31(3):608613.

[4]張學寶,包富華,鄭江濤,等.基于開源架構的GIS原型系統的設計與開發研究[J].測繪科學,2010,35(4):210211.

[5]劉力贊.基于SharpMap航線設計與呈現的研究與實現[D].北京:北京郵電大學,2009.

[6]陳大.SharpMap在供水管網的應用[J].信息與電腦:理論版,2011(6):210,212.

[7]張蘭慧,王式功,尚可政,等.SharpMap在青海省氣象信息網絡數據庫中的應用[J].氣象科技,2012,40(1):5760.

[8]GDAL[EB/OL].[20170309].http://www.gdal.org/.

[9]PostGIS[EB/OL].[20170309].http://www.postgis.org/.

[10]GeoServer[EB/OL].[20170309].http://geoserver.org/.

[11]NTS[EB/OL].[20170309].https://sourceforge.net/projects/nts/.

[12]Easy GIS [EB/OL]. [20170309].http://www.easygisdotnet.com/.

責任編輯(責任編輯:黃健)

猜你喜歡
數據庫功能分析
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
隱蔽失效適航要求符合性驗證分析
電力系統不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
關于非首都功能疏解的幾點思考
數據庫
財經(2017年2期)2017-03-10 14:35:35
電力系統及其自動化發展趨勢分析
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 亚洲最新网址| 91在线激情在线观看| 拍国产真实乱人偷精品| 色偷偷一区二区三区| 免费jjzz在在线播放国产| 国产精品免费露脸视频| 国产免费久久精品99re不卡| 国产黄色视频综合| 亚洲第一成网站| 亚洲AV一二三区无码AV蜜桃| 亚洲福利网址| 国产91色在线| 亚洲av无码专区久久蜜芽| 久久一本日韩精品中文字幕屁孩| 人妻中文久热无码丝袜| 久久网欧美| 国产一区二区三区精品久久呦| 国产一区在线视频观看| 91免费国产高清观看| 亚洲三级色| 人妻出轨无码中文一区二区| 一本综合久久| 国产男人的天堂| 欧美成人午夜视频| 日本精品视频| 无码'专区第一页| 国产91av在线| 波多野衣结在线精品二区| 亚洲精品视频在线观看视频| 国产精品私拍99pans大尺度| 久久久久亚洲AV成人人电影软件| 扒开粉嫩的小缝隙喷白浆视频| 91麻豆久久久| 久草视频一区| 国产成人资源| 又爽又黄又无遮挡网站| 97在线免费视频| 97se亚洲综合在线天天| 无码粉嫩虎白一线天在线观看| 日本免费高清一区| 亚洲国产日韩在线成人蜜芽| 国产99精品视频| 美女免费精品高清毛片在线视| a级毛片毛片免费观看久潮| 久久国产精品麻豆系列| 中美日韩在线网免费毛片视频| 亚洲天堂在线免费| 麻豆AV网站免费进入| 毛片在线播放a| 亚洲最大福利网站| 欧美不卡视频一区发布| 熟女视频91| 无码AV高清毛片中国一级毛片| 爆操波多野结衣| 99久久精彩视频| 91亚瑟视频| 日韩一区二区在线电影| 欧美不卡二区| 亚洲午夜福利在线| 99久久成人国产精品免费| 国产精品欧美亚洲韩国日本不卡| 综合久久久久久久综合网| 久久激情影院| 黄色网站在线观看无码| 免费播放毛片| 国产精品伦视频观看免费| www亚洲天堂| 日韩无码真实干出血视频| 亚洲乱亚洲乱妇24p| 凹凸精品免费精品视频| 色悠久久久| 天天色天天操综合网| 欧美成人午夜视频免看| 女人18一级毛片免费观看| 色妞www精品视频一级下载| 欧美国产菊爆免费观看| 2022国产91精品久久久久久| 日韩123欧美字幕| 久久99精品久久久久纯品| yjizz视频最新网站在线| 国产区在线看| 69av免费视频|