亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SharpMap的GIS系統(tǒng)設計與實現

        2018-03-26 02:14:46張海兵
        軟件導刊 2018年3期
        關鍵詞:圖層開源矢量

        張海兵

        摘要:

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

        關鍵詞:

        開源軟件;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引言

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

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

        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層:定義圖元的坐標系統(tǒng),或者將圖元從一種坐標空間投影到另一種定坐標空間,實現投影轉換。

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

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

        1.2源碼分析

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

        (1)Map類:位于SharpMap命名空間下,通過創(chuàng)建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 接口,每一種數據的打開、關閉、縮放、查詢等操作的具體實現可能并不相同,但都遵循統(tǒng)一的接口標準。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地圖渲染機制

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

        2系統(tǒng)設計

        2.1系統(tǒng)結構設計

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

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

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

        2.2系統(tǒng)功能設計

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

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

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

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

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

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

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

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

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

        3系統(tǒng)實現

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

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

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

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

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

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

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

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

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

        4結語

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

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

        參考文獻參考文獻:

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

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

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

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

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

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

        [7]張?zhí)m慧,王式功,尚可政,等.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/.

        責任編輯(責任編輯:黃?。?

        猜你喜歡
        圖層開源矢量
        矢量三角形法的應用
        五毛錢能買多少頭牛
        巧用混合圖層 制作抽象動感森林
        大家說:開源、人工智能及創(chuàng)新
        開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網+創(chuàng)新2.0
        基于矢量最優(yōu)估計的穩(wěn)健測向方法
        三角形法則在動態(tài)平衡問題中的應用
        圖層法在地理區(qū)域圖讀圖中的應用
        地理教學(2015年18期)2016-01-06 12:00:38
        開源計算機輔助翻譯工具研究
        淺析“遞層優(yōu)化法”在礦井制圖中的應用
        河南科技(2014年6期)2014-04-04 08:00:42
        在线看亚洲十八禁网站| 日韩女同精品av在线观看| 色综合久久中文娱乐网| 久久精品国产www456c0m | 亚洲国产一区二区三区在线视频| 国产精品毛片大尺度激情| 亚洲精品一区二区三区52p| 欧美日韩精品久久久免费观看 | 免费国产成人肉肉视频大全| 少妇被粗大的猛进69视频| а的天堂网最新版在线| 亚洲本色精品一区二区久久| 成人国成人国产suv| 最近中文字幕视频高清| 尤物蜜芽福利国产污在线观看 | 成人免费无码大片a毛片| 亚洲国产成人va在线观看天堂| 人妻无码一区二区19P| 加勒比久久综合久久伊人爱| 成人亚洲精品777777| 毛片免费在线播放| 97人妻蜜臀中文字幕| 东北女人一级内射黄片| 国产肥熟女视频一区二区三区| 色综合另类小说图片区| 精品国产精品久久一区免费| 放荡的美妇在线播放| 欧美v亚洲v日韩v最新在线| 国内视频一区| 国产精品视频白浆免费视频| √新版天堂资源在线资源| 国产精品片211在线观看| 一区二区三区在线观看视频免费| 亚洲大尺度无码无码专区| 女厕厕露p撒尿八个少妇| 亚洲国产福利成人一区二区 | 亚洲国产成人片在线观看无码 | 少妇高潮潮喷到猛进猛出小说| 久久老子午夜精品无码| 91盗摄偷拍一区二区三区| 亚洲成a人无码|