Работа с FDO в Visual Studio на языке C#
- JEY
- Активный участник
- Сообщения: 228
- Зарегистрирован: 17 июл 2008, 13:42
- Репутация: 1
Re: Работа с FDO в Visual Studio на языке C#
Все верно. В FDO не все библиотеки можно подключать к проекту в Visual Studio, поскольку они не являются библиотеками с управляемым кодом (managed code). Подключаются только те, что я указал в списке в предыдущем сообщении...
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 24 фев 2010, 19:26
- Репутация: 0
- Контактная информация:
Re: Работа с FDO в Visual Studio на языке C#
Всё воюю с дипломом... Подскажите, пожалуйста, как получить доступ к атрибутивным данным формата SHP? Совсем ничего не получается... А скоро сдавать...
До геометрии вроде получилось добраться, а дальше никак. А впереди ещё пространственные данные.
Может кто-нибудь даст экскурс в FDO? Никак он не поддаётся пониманию, а информации совсем почти нет по нему нигде.

Может кто-нибудь даст экскурс в FDO? Никак он не поддаётся пониманию, а информации совсем почти нет по нему нигде.
- JEY
- Активный участник
- Сообщения: 228
- Зарегистрирован: 17 июл 2008, 13:42
- Репутация: 1
Re: Работа с FDO в Visual Studio на языке C#
А что говорится в документации о классах PropertyDefinition, PropertyDefinitionCollection и унаследованных от них DataPropertyDefinition и DataPropertyDefinitionCollection?
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 15 апр 2010, 20:48
- Репутация: 0
Re: Работа с FDO в Visual Studio на языке C#
Здравствуйте.
Та же проблема не могу никак получить атрибутивные данные в коллекцию.
добрался только до определенного значения:
while(reader.ReadNext())
{
reader.GetString("NAME");
}
но я думаю это как то можно сделать красивее, вот только как...
помогите плз!!
Та же проблема не могу никак получить атрибутивные данные в коллекцию.
добрался только до определенного значения:
while(reader.ReadNext())
{
reader.GetString("NAME");
}
но я думаю это как то можно сделать красивее, вот только как...
помогите плз!!
- JEY
- Активный участник
- Сообщения: 228
- Зарегистрирован: 17 июл 2008, 13:42
- Репутация: 1
Re: Работа с FDO в Visual Studio на языке C#
Приветствую!
Для начала было бы неплохо, если бы Вы хотя бы частично включали в сообщения результаты Вашей работы, тогда я смог бы оценить ситуацию. Что именно не получается?
Давайте обратим внимание на следующий пример:
Теперь сравните его с тем, что у Вас уже есть... Что-то аналогичное? Можно ли отталкиваться от данного примера? Если да, то постараемся развить этот кусочек кода до той степени, чтобы он отвечал Вашим задачам.
Для начала было бы неплохо, если бы Вы хотя бы частично включали в сообщения результаты Вашей работы, тогда я смог бы оценить ситуацию. Что именно не получается?
Давайте обратим внимание на следующий пример:
Код: Выделить всё
IConnection connection = null; //Установите здесь созданное Вами соединение.
ISelect select = connection.CreateCommand(CommandType.CommandType_Select);
using (IFeatureReader f_reader = select.Execute())
{
ClassDefinition class_def = f_reader.GetClassDefinition();
PropertyDefinitionCollection prop_def_collection = class_def.Properties;
while (f_reader.ReadNext())
{
... //Добавьте здесь блок кода для считывания свойств объектов класса.
}
}
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 15 апр 2010, 20:48
- Репутация: 0
Re: Работа с FDO в Visual Studio на языке C#
Большое спасибо Jey,
У меня практически идентичный код, но дело в том, что значение каждого свойства необходимо считывать определенной функцией, например значение свойства типа string функцией f_reader.GetString(), int функцией GetInt32() и т.д.
например:
у нас есть shp файл со следующими свойствами:
FeatId типа int32 ;
NAME типа стринг;
теперь мы можем сделать так:
тут приходится руками вызывать нужную функцию..
может как то можно автоматизировать этот процесс?
заранее спасибо!
У меня практически идентичный код, но дело в том, что значение каждого свойства необходимо считывать определенной функцией, например значение свойства типа string функцией f_reader.GetString(), int функцией GetInt32() и т.д.
например:
у нас есть shp файл со следующими свойствами:
FeatId типа int32 ;
NAME типа стринг;
теперь мы можем сделать так:
Код: Выделить всё
while(f_reader.ReadNext())
{
f_reader.GetInt32("FeatId");
f_reader.GetString("NAME");
}
тут приходится руками вызывать нужную функцию..
может как то можно автоматизировать этот процесс?
заранее спасибо!
- JEY
- Активный участник
- Сообщения: 228
- Зарегистрирован: 17 июл 2008, 13:42
- Репутация: 1
Re: Работа с FDO в Visual Studio на языке C#
Тогда давайте добавим следующий кусочек кода:
У меня этот фрагмент отрабатывает достаточно хорошо...
Код: Выделить всё
PropertyDefinition prop_def = prop_def_collection[key]; //Используйте идентификатор свойства <key>.
DataPropertyDefinition data_prop_def = prop_def as DataPropertyDefinition;
if (f_reader != null)
{
switch (data_prop_def.DataType)
{
case DataType.DataType_Int32:
f_reader.GetInt_32(name); //Используйте наименование свойства <name>.
break;
case DataType.DataType_String:
f_reader.GetString(name); //Используйте наименование свойства <name>.
break;
...
}
}
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей