Используя DotSpatial, если я открою шейп-файл как 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 атрибутов. Я вижу, что один из этих атрибутов — это то, что я считаю названием формы (в этом примере я смотрю на провинции Эквадора), но я понятия не имею, как надежно соединить, какой из этих атрибутов будет имя фигуры, в данном случае название провинции.
Изменить
Вот пример доступных атрибутов, которые я вижу для первой формы:
На первый взгляд, я бы сказал, что атрибут с индексом 4 был тем, что мне нужно, но как мне узнать это программно?
Дальнейшее редактирование
Похоже, что при дальнейшем изучении данных метки для атрибутов могут быть именами столбцов DataTable в IFeatureSet
:
Хотя... что бы я выбрал программно, если бы захотел импортировать эти фигуры? Единственный способ позволить человеку, выполняющему импорт, вручную выбрать правильный?