天天看點

SuperMap iObject入門開發系列七管線橫斷面分析

具體功能實作思路:首先進行橫截面線的繪制,這裡依然是使用Action3D.MeasureDistance測量工具進行畫線,畫線結束後,我在這裡将繪制的線擷取分别生成三維線資料集和二維線資料集,其中三維線資料集用于生成圖層進行展示,二維線資料集用于後面和管線求交等一系列計算。下面貼出建立三維資料集和生成圖層的部分代碼。前面的準備工作完成後,就開始進行核心部分的代碼編寫。我們先理一理整個思路,我們最後要擷取的東西是管線的橫截面圖,這就涉及到我們畫的橫截面線和管線交點位置的埋深和管徑,管徑可以直接從管線資料集擷取,交點埋深則要通過計算了。這裡講解一下交點埋深的計算方法,首先計算得到交點的坐标(Xi,Yi),擷取管線的起始坐标(X0,Y0),終止坐标(Xt,Yt),起始埋深H0,終止埋深Ht。我們要求的交點埋深Hi

本文是一位好友“托馬斯”授權給我來發表的,介紹都是他的研究成果,在此,非常感謝。

管線橫斷面分析功能是管線系統常見的一個分析功能,地下管線橫斷面分析的原理,是根據需求,在管線區域畫一條橫截面線,使其與地下管線相交,根據相交情況獲得地下管線改交點的橫截面和埋深等資訊,并畫圖顯示出來,結果界面圖:

SuperMap iObject入門開發系列七管線橫斷面分析
具體功能實作思路:
  • 首先進行橫截面線的繪制,這裡依然是使用Action3D.MeasureDistance測量工具進行畫線,畫線結束後,我在這裡将繪制的線擷取分别生成三維線資料集和二維線資料集,其中三維線資料集用于生成圖層進行展示,二維線資料集用于後面和管線求交等一系列計算。下面貼出建立三維資料集和生成圖層的部分代碼。
  • 前面的準備工作完成後,就開始進行核心部分的代碼編寫。我們先理一理整個思路,我們最後要擷取的東西是管線的橫截面圖,這就涉及到我們畫的橫截面線和管線交點位置的埋深和管徑,管徑可以直接從管線資料集擷取,交點埋深則要通過計算了。這裡講解一下交點埋深的計算方法,首先計算得到交點的坐标(Xi,Yi),擷取管線的起始坐标(X0,Y0),終止坐标(Xt,Yt),起始埋深H0,終止埋深Ht。我們要求的交點埋深Hi。
  • 最後将計算結果,結合管徑,管線顔色等資料資訊,展示成圖。這裡用的是Bitmap對象進行儲存繪制的橫斷面等,結合Graphics類對象設定畫筆顔色等進行繪圖。代碼比較繁瑣,這裡就不貼出來。

詳細文章見:這裡

好友“托馬斯”技術交流QQ:519926200

GIS之家作品店鋪:GIS之家作品店鋪

GIS之家源碼咨詢:GIS之家webgis入門開發系列demo源代碼咨詢

掃碼關注GIS之家微信公衆号,消息發送“gis之家”可免費擷取地圖資料以及arcgis系列安裝包等資源