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