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