0

DotSpatial を使用して Shapefile を として開くと、IFeatureSet内に形状のコレクションが表示されFeatureSet、これらの形状には属性のコレクションがあります。しかし、形状に関連付けられた名前を見つける明白な方法がわかりませんか?

たとえば、次のコードがあるとします。

var featureSet = Shapefile.Open("../../Ecuador/map.shp");

var rowCount = featureSet.NumRows();

for (var i = 0; i < rowCount; i++)
{
    var shape = featureSet.GetShape(i, true);
    var geometry = shape.ToGeometry();
}

Shapeオブジェクトにブレークポイントを設定してこのコードをデバッグすると、属性のコレクションが表示されます。私が使用している例では、各形状に 12 の属性があります。これらの属性の 1 つが形状の名前であると考えられることがわかります (この例では、エクアドルの州を見ています)。しかし、これらの属性のどれが形の名前、この場合は州の名前です。


編集

最初の形状で確認できる使用可能な属性の例を次に示します。

使用可能な形状属性のイメージ

ざっと見てみると、必要なのはインデックス 4 の属性だと思いますが、プログラムでこれを見つけるにはどうすればよいでしょうか。


さらに編集

データをさらに調べてみると、属性のラベルが の DataTable 列名である可能性があるように見えますIFeatureSet

データ テーブルの列の値のイメージ

ただし...これらの形状をインポートしたい場合、これらのどれをプログラムで選択しますか? インポートを行う人が手動で正しいものを選択できるようにする唯一の方法はありますか?

4

1 に答える 1

1

Importing Geographic Information Systems (GIS) data in Google Earthというページを見つけました。

シェープファイルからインポートするプロセスは、ユーザーが使用可能な属性のテーブルから、形状の名前を含む属性を選択するよう求められるスクリーンショットを示しています。

名前フィールドの選択を示す画像

機能に名前を付けるタスクは、ユーザーが手動で処理しているように見えます。

于 2016-01-19T15:28:56.597 に答える