多Paht和Ring的Geometry的座標轉換問題

來源:互聯網
上載者:User

很久以前就寫過座標轉換的程式,原理當然十分簡單,通過IPointCollection介面取出每一個Geometry的組成節點,轉換為新點後再次組合起來即可。但在剛開始的時候沒有考慮Polyline的多Path和Polygon的多Ring情況,以至於一出現有洞的面或多重路徑的線時,轉換的資料就是亂七八糟。

我後來也曾經試圖通過尋找Polygon的外環和外環中的內環等方法來解決,這個玩意就兩個字:複雜,尚若洞中還有環,這個Geometry的解析就無比複雜。拖拖拉拉半年之後,剛剛資料部接到一個寧波座標轉WGS84的任務,用以前的工具一轉,點和大部分線還馬馬虎虎,那些面就真見了鬼了。

由於時間不多,思量之下,突然想到使用IGeometryCollection介面的方法,譬如對一個有兩個洞的Polygon,可以這樣處理:
IGeometryCollection pGeoCol=pPolygon as IGeometryCollection;
console.writeline(pGeoCol.GeometryCount);
我們會發現結果為3,即兩個內環和一個外環都同時取出了。

如果將三個環分別轉換產生,當然還是用IPointCollection的介面,然後使用IGeometryCollection的方式進行組合,就剛剛好:
IGeoemtryCollection pNewGeo=new PolygonClass();
pNewGeo.AddGeometry(......)

立刻修改程式,4小時15分41秒,成功轉換了大約1146889條記錄。轉換品質較高。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.