FAQ
距離や面積の測定

ナレッジ番号:5340 | 登録日:2023/07/26 | 更新日:2024/11/21

概要

ジオメトリ オブジェクトから距離や面積を測定することができます。

距離は ICurve::Length プロパティで取得できます。ICurve インタフェースは Line、CircularArc、EllipticArc、BezierCurve、Path、Ring、Polyline、Polygon クラスに実装されており、キャストしなくても利用できます。Ring と Polygon の場合は周長が取得できます。

面積は IArea::Area プロパティから取得できます。Polygon、Envelope、Ring クラスに実装されており、キャストして利用します。

計測する距離や面積の値と単位は座標系に依存しますので、目的に応じて正距もしくは正積の投影座標系を選択してください。

コード

ライン距離の測定

始点(0,0)と終点(100,100)を結ぶ直線の距離を求めます。

//ポイントの始点の位置を定義
IPoint fromPoint = new PointClass();
fromPoint.PutCoords(0,0);

//ポイントの終点の位置を定義
IPoint toPoint = new PointClass();
toPoint.PutCoords(100,100);

//始点から終点の間にラインを作成
ILine pLine = new LineClass();
pLine.FromPoint = fromPoint;
pLine.ToPoint = toPoint;

//ラインの距離を表示
MessageBox.Show(pLine.Length.ToString());
'ポイントの始点の位置を定義
Dim fromPoint As IPoint = New PointClass()
fromPoint.PutCoords(0,0)

'ポイントの終点の位置を定義
Dim toPoint As IPoint = New PointClass()
toPoint.PutCoords(100,100)

'始点から終点を結ぶラインを作成
Dim pLine As ILine = New LineClass()
pLine.FromPoint = fromPoint
pLine.ToPoint = toPoint

'ラインの距離を表示
MessageBox.Show(pLine.Length.ToString())

エンベロープの面積測定

(0,0) - (100,100) を囲うエンベロープの面積を求めます。

//エンベロープの範囲を定義
IEnvelope pEnvelope = new EnvelopeClass();
pEnvelope.PutCoords(0,0,100,100);

//面積の測定
IArea pArea = (IArea)pEnvelope;
MessageBox.Show(pArea.Area.ToString());
'エンベロープの範囲を定義
Dim pEnvelope As IEnvelope = New EnvelopeClass()
pEnvelope.PutCoords(0,0,100,100)

'面積の測定
Dim pArea As IArea = CType(pEnvelope, IArea)
MessageBox.Show(pArea.Area.ToString())

メタデータ

機能

種類

製品