FAQ
ArcGIS Pro SDK: 座標値の取得

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

概要

ArcGIS Pro SDK.net でジオメトリの座標値を取得するためのサンプル コードを紹介します。

サンプル コード

最上位レイヤーの選択ポリラインの座標を取得するためのサンプル コードです。全角の<>を半角に直してからご利用ください。

//最上位のレイヤーを取得
var firstLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<FeatureLayer>().FirstOrDefault();

QueuedTask.Run(() =>
{
    //指定レイヤーの選択フィーチャを取得
    var selectionfromMap = firstLayer.GetSelection();

    //選択フィーチャのOIDを取得しフィルターを作成
    ArcGIS.Core.Data.QueryFilter filter = new ArcGIS.Core.Data.QueryFilter

    {
        ObjectIDs = selectionfromMap.GetObjectIDs()
    };

    // 選択フィーチャからカーソルを作成
    using (ArcGIS.Core.Data.RowCursor rowCursor = firstLayer.Search(filter))
    {
        while (rowCursor.MoveNext())
        {
            long oid = rowCursor.Current.GetObjectID();

            // カーソルのrowからフィーチャオブジェクトと Shape を取得
            ArcGIS.Core.Data.Feature feature = rowCursor.Current as ArcGIS.Core.Data.Feature;
            Polyline polyline = feature.GetShape() as Polyline;

            //ポリラインのポイント数(頂点数)を取得
            int numPts = polyline.PointCount;

            // ポイントの座標を、2Dのreadonly listで取得
            IReadOnlyList<Coordinate2D> coordinates = polyline.Copy2DCoordinatesToList();
            
            //ポイント数分ループ
            for (int i = 0; i < numPts; i++)
            {
             //XおよびY座標の表示
                System.Diagnostics.Debug.WriteLine(coordinates[i].X.ToString() + " , " + coordinates[i].Y.ToString());
            }

        }
    }

});

注意事項

こちらのサンプルはあくまでもコーディングの見本であり、ツール実行時に発生したエラーの対処方法につきましては、サポート対象外とさせていただきます。また、操作方法やソースコードに関するご質問は別途有償の開発者サポート契約にてご対応させていただきます。新規バージョンに対応したツールを継続的に提供することを保証するものでもないことも予めご承知おきください。なお、ツールを利用して生じたいかなる損害についても弊社では責任を負いかねます。

メタデータ

機能

種類

製品