Использование 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 был тот, который мне нужен, но как это узнать программно?
Далее Edit
Это выглядит так, как будто через дальнейшее тыкать о в данных, что метки для атрибутов может быть DataTable имена столбцов в IFeatureSet
:
Хотя ... какой из них я бы выбрал программно, если бы хотел импортировать эти фигуры? Это единственный способ позволить человеку, выполняющему импорт, вручную выбрать правильный?
Вы ищете уникальный идентификатор для связи с каждой фигурой? Возможно, что некоторые столбцы в таблице атрибутов не уникальны. Обычно пользователи выбирают столбец по картографическим причинам, например. столбец может содержать метки, не обязательно уникальные, которые пользователь хочет отобразить на карте. FID в DotSpatial уникален. – subsci
Спасибо. Я ищу имя формы. В моем примере я загружаю данные формы (полигоны) для провинций Эквадора. В KML для каждой функции будет элемент «Имя», где я ожидаю найти название каждой провинции. Я думаю, так как я переосмыслил это и посмотрел на другие форматы, такие как GeoJSON, я пришел к выводу, что с Shapefile данные есть, но они найдены в коллекции атрибутов в данных DBF. Из того, что я узнал, похоже, вам нужно будет знать, что название провинции хранится в атрибуте 4. –
Файл DBF файла формы необязательно имеет атрибут имени. KML включает в себя картографические элементы, но файлы формы не – subsci