Выделение объектов

0 голосов
спросил 20 Апр, 10 от Alla (1,440 баллов) в категории Программные продукты Esri
       Здравствуйте! Помогите, пожалуйста!Нужно запрограммировать свою кнопку, при нажатии на которую выдлен был бы линейный объект на карте из определенного слоя.Слоев 2:реки и дороги. При нажати на кнопку появляется форма на ней 2 комбобокса и в зависимости от того что вних выбрано, неоходимо выделить объект, при нажатии на кнопку.

54 Ответы

0 голосов
ответил 21 Апр, 10 от TDenis (42,620 баллов)
Можно ведь искать по имени. Зачем выделять?
Впрочем ладно, раз хотите, то пусть будет так. Посмотрите справку по:
IContentsView.SelectedItem
IContentsView.AddToSelectedItems
0 голосов
ответил 21 Апр, 10 от Alla (1,440 баллов)
   В каждом слое есть по 5 объектов занесенных в таблицу атрибутов,при выборе конкретного объекта мне нужно его выделить на карте
0 голосов
ответил 21 Апр, 10 от Alla (1,440 баллов)
    Нужно не весь слой выделять сразу, а конкретный объект слоя.
0 голосов
ответил 21 Апр, 10 от TDenis (42,620 баллов)
IFeatureSelection.SelectFeatures

http://www.dataplus.ru/Support/ESRI/ArcGIS/ArcObjects/ArcObjects.htm
Скрипт 6.
0 голосов
ответил 21 Апр, 10 от Alla (1,440 баллов)
    спасибо!
0 голосов
ответил 06 Май, 10 от Alla (1,440 баллов)
Привет! Подскажите, я по имени нашла слой, как мне сделать его активным???
В combobox2 - выбирается номер объекта (номер дороги). И необходимо по этому номеру выделить объект на карте. Как это можно осуществить?
0 голосов
ответил 06 Май, 10 от TDenis (42,620 баллов)
Привет! Подскажите, я по имени нашла слой, как мне сделать его активным???

С помощью поиска.
https://forum.esri-cis.ru/index.php?qa=26938
http://resources.esri.com/help/9.3/ArcGISEngine/ArcObjects/esriArcMapUI/IContentsView_SelectedItem.htm
http://resources.esri.com/help/9.3/ArcGISEngine/ArcObjects/esriArcMapUI/IContentsView_SelectedItem_Example.htm

В combobox2 - выбирается номер объекта (номер дороги). И необходимо по этому номеру выделить объект на карте. Как это можно осуществить?

IFeatureSelection.SelectFeatures

http://www.dataplus.ru/Support/ESRI/ArcGIS/ArcObjects/ArcObjects.htm
Скрипт 6.
0 голосов
ответил 12 Май, 10 от Alla (1,440 баллов)
Я взяла из 6 скрипта,что вы советовали,и у меня в строке вылетает,пишет что ошибка
sel.SelectFeatures filter, esriSelectionResultNew, False,
а еще не знает интерфейса ISelectionEvents
0 голосов
ответил 14 Май, 10 от Alla (1,440 баллов)
Sub SelectFeatures()

Dim mxDoc As IMxDocument
Set mxDoc = Application.Document
'поиск слоя, из которого будет производиться выборка
Dim lyr As IFeatureLayer
Set lyr = FindLayer(mxDoc.FocusMap, "BigCypress")
'получение интерфейса выборки
Dim sel As IFeatureSelection
Set sel = lyr
'создание фильтра запроса
Dim filter As IQueryFilter
Set filter = New QueryFilter
'установка WHERE-запроса и пространственной привязки
filter.WhereClause = "Name = 'Hampton'"
Dim shapeField As String
ShapeField = lyr.FeatureClass.ShapeFieldName
Set filter.OutputSpatialReference(shapeField) =_
mxDoc.FocusMap.SpatialReference
'очистка существующей выборки на экране
mxDoc.ActiveView.PartialRefresh_
esriViewGeoSelection, Nothing, Nothing

'выбор объектов и установка новой выборки
sel.SelectFeatures filter, _
esriSelectionResultNew, False


mxDoc.ActiveView.PartialRefresh_
esriViewGeoSelection, Nothing, Nothing
'оповещение об изменении выборки
Dim selEvents As ISelectionEvents
Set selEvents = mxDoc.FocusMap
SelEvents.SelectionChanged

End Sub
Вот код может глянет кто нибудь в чем проблема с ним?
0 голосов
ответил 14 Май, 10 от TDenis (42,620 баллов)
Какая версия ArcGIS Desktop?

Уберите символы переноса строки, напишите в одну строчку, либо вставьте пробел между словом PartialRefresh и подчёркиванием.
В определении FindLayer возможно придётся заменить тип возвращаемого значения: As Layer на As ILayer.
Поставьте точку остановки и убедитесь, что ваш слой успешно находится и lyr не равен Nothing.
Убедитесь, что у вас задано корректное условие для выборки.
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...