• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      利用GDAL實現(xiàn)導(dǎo)航道路的外擴線生成

      2018-04-08 01:48:16
      測繪通報 2018年3期
      關(guān)鍵詞:緩沖區(qū)交點開源

      鞏 巖

      (測繪出版社,北京 100045)

      隨著科學(xué)技術(shù)的發(fā)展,導(dǎo)航地圖在人們?nèi)粘I钪械淖饔迷絹碓街匾?。目前,國?nèi)已經(jīng)有數(shù)家導(dǎo)航地圖服務(wù)商,如高德地圖、百度地圖、騰訊地圖等。這些服務(wù)商自己采集原始導(dǎo)航數(shù)據(jù),或者通過數(shù)據(jù)供應(yīng)商獲得一部分導(dǎo)航數(shù)據(jù),而從原始導(dǎo)航數(shù)據(jù)到成品導(dǎo)航地圖中間,必然涉及數(shù)據(jù)再處理環(huán)節(jié)。目前,對導(dǎo)航數(shù)據(jù)的處理,一方面集中在對地理信息屬性的關(guān)聯(lián)添加上,如對關(guān)注點(POI)要素需要添加名稱、電話等關(guān)聯(lián)信息;另一方面需要對現(xiàn)有的導(dǎo)航數(shù)據(jù)的空間屬性進行深加工,以適應(yīng)新的導(dǎo)航需求或地圖渲染效果需求?,F(xiàn)階段,研發(fā)人員大多基于二次開發(fā)庫(如ArcGIS engine等)進行數(shù)據(jù)處理,如果考慮軟件平臺成本需求和自身研發(fā)時間限制,就需要一些開源庫的支持,而GDAL(geospatial data abstraction library)是目前處理柵格數(shù)據(jù)和矢量數(shù)據(jù)較為成熟的開源庫。GDAL不僅為讀取地理信息數(shù)據(jù)提供較為成熟的接口,還提供一定的算法和工具,能實現(xiàn)地理信息數(shù)據(jù)的處理。本文首先介紹GDAL的一些基礎(chǔ)知識,然后探討如何利用GDAL實現(xiàn)導(dǎo)航數(shù)據(jù)的空間處理,最后利用實例探討導(dǎo)航道路的外擴線生成方法。

      1 GDAL概述

      GDAL是一個在X/MIT許可協(xié)議(MIT許可證源自麻省理工學(xué)院Massachusetts Institute of Technology,MI又稱為X條款或X11條款)下的開源空間數(shù)據(jù)轉(zhuǎn)換庫。它能夠使用單一的抽象數(shù)據(jù)模型來支持大多數(shù)的地理數(shù)據(jù)格式。除此之外,這個庫還同時包括了操作矢量數(shù)據(jù)的OGR(open GIS simple feature reference implementation)庫,一般將這兩個庫合稱為GDAL/OGR,或者直接簡稱為GDAL。

      截至GDAL 2.1.2版,此開源庫已經(jīng)可以支持142種柵格數(shù)據(jù)格式和84種矢量數(shù)據(jù)格式。同時,能夠在C、C++、Python、Ruby、VB、Java、C#等多個語言環(huán)境下運行。使用GDAL的優(yōu)勢還在于它是開源地理空間基金會(open source geospatial foundation,OSGeo)支持的開源庫,可以與國內(nèi)外大部分軟件實現(xiàn)對接。GDAL可以同時無縫集成GEOS、PROJ等著名開源庫的一些功能,實現(xiàn)對要素的拓撲運算、坐標轉(zhuǎn)換等功能。許多著名的GIS軟件都是用了GDAL,如Esri的ArcGIS9.3、Google的Google Earth及開源的GRASS GIS系統(tǒng)等。

      GDAL使用抽象數(shù)據(jù)模型來解析它所支持的數(shù)據(jù)格式,抽象數(shù)據(jù)模型包括數(shù)據(jù)集、坐標系統(tǒng)、仿射地理坐標轉(zhuǎn)換、大地控制點、元數(shù)據(jù)、柵格波段、顏色表、子數(shù)據(jù)集域、圖像結(jié)構(gòu)域、XML域等。對于柵格數(shù)據(jù)的處理,GDAL常用的類有GDALMajorObject類、GDALDdataset類、GDALDriver類、GDAL Driver Manager類;對于矢量數(shù)據(jù)的處理,OGR則封裝了驅(qū)動類、圖層類、幾何類、空間參考類、要素類、屬性類等。從中可以看出,其廣泛完整的代碼體系庫可以很好地支持研發(fā)人員完成GIS項目開發(fā)需求。

      2 線要素處理的數(shù)學(xué)原理

      導(dǎo)航道路數(shù)據(jù)處理涉及點線面等多個類型的要素數(shù)據(jù)。其中針對線要素的處理也是較為重要的一部分。如在只有一條道路線的情況下,數(shù)據(jù)人員通過測量道路寬度可以計算出雙行線、人行道等導(dǎo)航需要的線信息,可以節(jié)省大量的數(shù)據(jù)采集成本。

      2.1 線段外擴點坐標計算

      已知坐標點A(x1,y1)、B(x2,y2),線要素外擴距離為l,通過這些已知條件求解線段對應(yīng)的向兩邊外擴線段端點坐標。設(shè)求解方向是由A到B,則其方向的反正切值可以表示為

      根據(jù)方向角的反正切值計算坐標點A的坐標平移量,即

      從而求出A點對應(yīng)的兩個外擴點的坐標值分別為C1(x1+Δx,y1+Δy)、C2(x1-Δx,y1-Δy)。坐標點B的計算方法與其類似。

      通過以上計算外擴點方法可以得到一條道路線段緩沖出來的兩條線段,但線段與線段可能并不相交,也會有交叉情況,這時還需要對求出的線段進行相互求交點的處理。

      2.2 兩條直線的交點求解

      已知直線L1上面已知點坐標為(x1,y1)、(x2,y2),直線L2上面已知點坐標為(x3,y3)、(x4,y4),分別計算其直線斜率為

      當(dāng)k1=k2時,判定其是否為平行線。不平行的情況可以通過下式計算其交點P的坐標,即

      當(dāng)x2=x1時,交點坐標計算公式簡化為

      當(dāng)x3=x4時,交點坐標計算公式簡化為

      利用以上直線求交點公式,可以進一步對很多條外擴線段相互求交點,然后通過判定其交點是在線段內(nèi)部還是外部來決定新生成的外擴線是增加內(nèi)插交點還是外擴交點。從而最終形成一條平滑的外擴道路線。

      3 導(dǎo)航道路的外擴線生成

      基于以上對外擴線生成的數(shù)學(xué)原理分析,本文利用GDAL實現(xiàn)導(dǎo)航道路外擴線生成。GDAL開源庫提供了多格式的GIS數(shù)據(jù)接口,如本文測試數(shù)據(jù)采用mapInfo格式的道路數(shù)據(jù)。

      GDAL讀取數(shù)據(jù)實例代碼如下:

      GDALAllRegister();∥構(gòu)建數(shù)據(jù)驅(qū)動

      GDALDataset* pDataset=(GDALDataset*)GDAL Open Ex(pszName,

      GDAL_OF_VECTOR,NULL,NULL,NULL);∥創(chuàng)建數(shù)據(jù)集

      OGRLayer*pLayer=(OGRLayer*)pDs->GetLayer(0);∥打開圖層

      同時,集成GEOS庫的GDAL具備拓撲分析能力,這就可以利用拓撲分析功能,首先將道路線按照一定緩沖距離直接緩沖為道路面,然后利用數(shù)學(xué)原理將多出的道路面截斷處理成道路線,這是本文提出的緩沖區(qū)法構(gòu)建道路外擴線的基本原理。而另一種方法幾何法主要是利用線段求點,最后在處理為平滑道路外擴線。

      3.1 幾何法

      幾何法生成外擴線原理是進入圖層后遍歷要素所獲取的坐標信息,然后根據(jù)以上數(shù)據(jù)原理逐個求出外擴點,最后連接成新的道路線。原始道路如圖1所示,其一條道路的外擴線生成結(jié)果如圖2所示。

      圖1 原始道路

      圖2 幾何法生成道路外擴線

      3.2 緩沖區(qū)法

      緩沖區(qū)法主要原理是對一整條道路構(gòu)建緩沖區(qū)。緩沖區(qū)法需要GDAL支持拓撲運算構(gòu)建緩沖區(qū)圖形,這就需要在編譯GDAL時加入GEOS的信息。

      建立緩沖的代碼如下:

      ∥建立緩沖

      ∥緩沖距離:dbufferdis

      OGRGeometry* pBufferGeo=pGeometry->Buffer

      (dbufferdis);

      通過以上函數(shù)實現(xiàn)線轉(zhuǎn)面的操作;然后對緩沖面的起末端進行運算處理,去除起末端圓弧部分;最終留下平行的兩條線就是需要的外擴線。其效果如圖3所示。

      對比兩種方法可發(fā)現(xiàn),幾何法運算速度較快,且生成圖形點的數(shù)量基本與原始道路一致;緩沖區(qū)法運行時效率上略慢于幾何法,但其幾何形狀能夠更好地進行展現(xiàn)。但是,緩沖區(qū)法還存在折點過多的問題,需要進一步進行抽稀處理。

      圖3 緩沖區(qū)法生成道路外擴線

      以上算法是只針對一條道路的數(shù)據(jù)進行處理。當(dāng)進行多條道路處理時,會遇到外擴線道路未連接或交叉的情況,如圖4、圖5所示。

      圖4 兩條原始道路相連

      圖5 相連兩條道路生成外擴線出現(xiàn)分離或交叉

      此時需要進行進一步的處理,方法是依據(jù)直線求交點公式對外擴線道路做截斷或延長處理。首先,遍歷首尾相連的兩條道路對應(yīng)的外擴線段是否有交點,有交點則進行道路截斷,無交點則需要對已生成外擴線進行外延至交點處。具體結(jié)果如圖6所示。

      圖6 平滑處理后結(jié)果

      從圖6可以看出,兩條道路通過平滑處理后的效果,可以生成與原始道路一致效果很好的外擴道路。

      4 總 結(jié)

      本文概要介紹了優(yōu)秀的GIS開源庫GDAL的基礎(chǔ)知識,然后針對導(dǎo)航道路外擴線的生成提出了幾何法和緩沖區(qū)法兩種實現(xiàn)導(dǎo)航道路外擴線生成的方法。通過實例分析發(fā)現(xiàn),GDAL可以很好地實現(xiàn)對導(dǎo)航數(shù)據(jù)的空間處理。

      實測效果顯示,幾何法在運算速度上和其接邊效果上要優(yōu)于緩沖區(qū)法;而緩沖區(qū)法對一條很長道路的擬合效果要好于幾何法,這要歸因于GEOS構(gòu)建緩沖區(qū)的算法較好,但是由于進行起末端半圓弧截斷時不能較好地測定何時進行截斷,因此緩沖區(qū)法的接邊效果不如幾何法。另外,緩沖區(qū)法也有不足,如生成結(jié)點過多,需要進一步進行抽稀處理,從而避免這些問題。

      參考文獻:

      [1] 李國標,莊雅平,王玨華.面向?qū)ο蟮腉IS數(shù)據(jù)模型——地理數(shù)據(jù)庫[J].測繪通報,2001(6):37-39.

      [2] 吳升,王家耀.近年來地理信息系統(tǒng)的技術(shù)走向[J].測繪通報,2000(3):20-21.

      [3] 肖志強,鮑光淑,黃繼先.融合SAR和TM圖像更新GIS道路網(wǎng)絡(luò)數(shù)據(jù)[J].測繪學(xué)報,2006,35(1):46-51.

      [4] 仇林遙,杜志強,謝金華.大文件高分辨率遙感影像的實時可視化方法[J].武漢大學(xué)學(xué)報(信息科學(xué)版),2016,41(8):1021-1026.

      [5] 葛亮,何濤,王均輝,等.基于GDAL的瓦片切割技術(shù)研究[J].測繪與空間地理信息,2014(7):130-132.

      [6] 張祖勛,黃明智.時態(tài)GIS的概念、功能和應(yīng)用[J].測繪通報,1995(2):12-14.

      [7] 田昕.SARINFORS軟件地理空間抽象數(shù)據(jù)模型[D].北京:北京林業(yè)大學(xué),2004.

      [8] 朱凌.Web GIS及其常用軟件比較[J].測繪通報,2002(9):60-61.

      [9] 鄧曉光,吳華意,李德仁,等.基于特征的基礎(chǔ)地理信息分類編碼方法研究[J].測繪通報,2008(4):21-24.

      [10]孔帥可,喬保軍,付征葉.基于GDAL的ESRI Shapefile格式文件處理[J].計算機時代,2014(8):43-45.

      [11]司連法,王文靜.快速Dijkstra最短路徑優(yōu)化算法的實現(xiàn)[J].測繪通報,2005(8):15-18.

      [12]盛業(yè)華,郭達志.GIS環(huán)境下空間要素的制圖綜合方法[J].測繪通報,1995(3):26-30.

      [13]蘇光日,范義鵬,張學(xué)之,等.GDAL在地理國情監(jiān)測項目中的應(yīng)用[J].測繪與空間地理信息,2014(1):86-88.

      [14]鄒時林,謝剛生,李大軍.地理要素編碼在GIS數(shù)據(jù)轉(zhuǎn)換中的應(yīng)用[J].測繪通報,2007(5):22-25.

      [15]熊偉成,楊必勝,董震.面向車載激光掃描數(shù)據(jù)的道路目標精細化魯棒提取[J].地球信息科學(xué)學(xué)報,2016,18(3):376-385.

      [16]楊馳.GIS空間分析建模構(gòu)想[J].測繪通報,2006(11):22-25.

      [15]解鵬,楊俊.基于空間景觀格局的耕地圖斑地形因子自動化提取工藝[J].測繪通報,2013(8):81-83.

      [16]黃先鋒,李娜,張帆,等.利用LiDAR點云強度的十字剖分線法道路提取[J].武漢大學(xué)學(xué)報(信息科學(xué)版),2015,40(12):1563-1569.

      猜你喜歡
      緩沖區(qū)交點開源
      嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計與實現(xiàn)
      五毛錢能買多少頭牛
      閱讀理解
      借助函數(shù)圖像討論含參數(shù)方程解的情況
      試析高中數(shù)學(xué)中橢圓與雙曲線交點的問題
      青年時代(2017年3期)2017-02-17 01:40:47
      大家說:開源、人工智能及創(chuàng)新
      開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
      開源計算機輔助翻譯工具研究
      關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
      指數(shù)函數(shù)與冪函數(shù)圖象的交點的探究性學(xué)習(xí)
      京山县| 海淀区| 巨鹿县| 葫芦岛市| 滦南县| 定边县| 北票市| 家居| 巴东县| 湘乡市| 天长市| 鹿邑县| 大洼县| 察雅县| 屏东市| 鹤峰县| 洞头县| 抚宁县| 资阳市| 南通市| 察隅县| 乌拉特前旗| 宜川县| 和林格尔县| 青川县| 鄯善县| 额尔古纳市| 留坝县| 萝北县| 沅江市| 夏河县| 锡林郭勒盟| 利川市| 黎城县| 四平市| 隆尧县| 德惠市| 贵州省| 奉化市| 鱼台县| 台前县|