arcgis Engine - поиск записи в слое

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

arcgis Engine - поиск записи в слое

Сообщение Tereha »

На карте есть слой -FeatureLayer, у которого есть поле наименования объекта и в поле , в котором содержатся координаты объекта. Задача состоит в поиске записи с заданным значением атрибута "Наименование".
Получаю нужный слой -

Код: Выделить всё

layer =(ESRI.ArcGIS.Carto.IFeatureLayer)axMapControl1.get_Layer(6)
FeatureLayer реализует интерфейс IFind, но я не могу найти соответствующего метода поиска Find?
Буду признателен за любую подсказку или ссылку!
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: arcgis Engine - поиск записи в слое

Сообщение Дмитрий Барышников »

Вам нужен метод
IFeatureClass.Search Method
http://edndoc.esri.com/arcobjects/9.2/c ... Search.htm
В IQueryFilter укажите условия отбора
А получить IFeatureClass из IFeatureLayer можно так:
http://edndoc.esri.com/arcobjects/9.1/c ... eClass.htm
Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Re: arcgis Engine - поиск записи в слое

Сообщение Tereha »

Спасибо, сейчас взгляну.
Увидел пример использования

Код: Выделить всё

void SelectMapFeaturesByAttributeQuery(ESRI.ArcGIS.Carto.IActiveView activeView, ESRI.ArcGIS.Carto.IFeatureLayer featureLayer, System.String whereClause)
Но у меня не подключается класс

Код: Выделить всё

ESRI.ArcGIS.Geodatabase
В чем может быть дело?
Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Re: arcgis Engine - поиск записи в слое

Сообщение Tereha »

Вроде как нужно добавить reference на ESRI.ArcGIS.Geodatabase, но как это делается?
Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Re: arcgis Engine - поиск записи в слое

Сообщение Tereha »

Как оказалось это просто - Project /Add Arcgis reference - и Geodatabase появилось. Но как используется IFind пока так и неясно
Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Re: arcgis Engine - поиск записи в слое

Сообщение Tereha »

Получается как то так -

Код: Выделить всё

            ESRI.ArcGIS.Carto.IFind pfind;
            ESRI.ArcGIS.Carto.IFeatureLayer layer;
            layer = (ESRI.ArcGIS.Carto.IFeatureLayer)axMapControl1.get_Layer(6) as ESRI.ArcGIS.Carto.IFeatureLayer;
            pfind = layer;
            pfind.Find(...);
Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя