如何获取形状名称

时间:2016-01-19 11:09:24

标签: shapefile dotspatial

使用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个属性。我可以看到其中一个属性是我认为是形状的名称(在这个例子中我看的是厄瓜多尔的省份),但我不知道如何可靠地配对这些属性中的哪一个是形状名称,在本例中是省名。


修改

以下是我可以看到第一个形状的可用属性的示例:

Image of available shape attributes

从快速看,我会说索引4处的属性是我需要的属性,但是如何以编程方式找到它呢?


进一步修改

看起来似乎是通过进一步探讨数据中属性的标签可能是IFeatureSet中的DataTable列名称:

Image of data table column values

虽然如果我想导入这些形状,我会以编程方式选择哪一个?允许执行导入的人手动选择正确的方法是唯一的方法吗?

1 个答案:

答案 0 :(得分:1)

我找到了一个名为Importing Geographic Information Systems (GIS) data in Google Earth的网页。

从shapefile导入的过程显示一个屏幕截图,要求用户从可用属性表中选择包含形状名称的属性。

Image showing the selecting of the name field

看起来将名称附加到要素的任务由用户手动处理。