Страница 1 из 1
Работа с мышью
Добавлено: 18 сен 2011, 20:13
BodyZ
Доброго времени суток
Подскажите пожалуйста как можно определить
над какими объектами слоев была нажата кнопка мыши.
Заранее спасибо

Re: Работа с мышью
Добавлено: 18 сен 2011, 20:54
novia
конкретизируйте, пожалуйста, вопрос.
для какой священной цели нужно знать над каким объектом произошел клик? (вы что-то программируете свое или это процесс работы со стандартными функциями?)
какая версия ArcGIS у вас установлена (в 10-ке появился специальный подсказчик)
в каком состоянии нажимаете кнопку мыши (какой инструмент выбран)?
Re: Работа с мышью
Добавлено: 18 сен 2011, 21:10
BodyZ
Я программирую.
Необходимо чтобы программно можно было
определить какие объекты и каких слоев находятся под мышью во время нажатия левой кнопки мыши
Re: Работа с мышью
Добавлено: 18 сен 2011, 21:22
novia
не силен в этой области.
но попробуйте посмотреть как работает стандартная идентификация (инструмент Identify), наверняка есть метод, реализующий то, что вам нужно.
пишете на arcobjects?
Re: Работа с мышью
Добавлено: 18 сен 2011, 23:00
Дмитрий Барышников
У вас есть экранные координаты в пикселах.
У интерфейса IScreenDisplay (
http://resources.esri.com/help/9.3/ArcG ... splay2.htm) есть свойство IDisplayTransformation (
http://resources.esri.com/help/9.3/ArcG ... mation.htm).
Например, используйте метод ToMapPoint интерфейса IDisplayTransformation чтобы пересчитать в координаты карты. А далее простой пространственный запрос.
Вот примеры
1.
http://resources.esri.com/help/9.3/arcg ... 7592e0.htm
2.
http://forums.arcgis.com/threads/19513- ... iven-layer
Re: Работа с мышью
Добавлено: 22 сен 2011, 11:07
BodyZ
Доброго времени суток.
Спасибо за помощь
Извините, может быть глупый вопрос

, но как мне организовать обработчик мыши.
Заранее спасибо
Re: Работа с мышью
Добавлено: 22 сен 2011, 13:15
Дмитрий Барышников
Создаете кнопку типа tool -
http://edndoc.esri.com/arcobjects/9.2/C ... /ITool.htm
все обработчики там есть.
Re: Работа с мышью
Добавлено: 23 сен 2011, 08:07
BodyZ
Большое спасибо за помощь.
С Вами, как всегда, приятно работать.
Чувствуется, что хелп ЕСРИ перерыт по несколько раз.
Спасибо, что помогаете не заблудиться в его дебрях

Re: Работа с мышью
Добавлено: 23 сен 2011, 16:19
BodyZ
Доброго времени суток.
Что-то я торможу
Сделал так
Код: Выделить всё
ESRI.ArcGIS.Display.IDisplayTransformation dtransf = new DisplayTransformationClass();
IPoint point = dtransf.ToMapPoint(X, Y);
Нужного результата не добился.
Может интерфейс
тянуть от какого то слоя, или от проекта?
Заранее спасибо
Re: Работа с мышью
Добавлено: 23 сен 2011, 16:58
BodyZ
Разобрался с преобразованием.
Нужно было сделать так
Код: Выделить всё
IMxDocument m_doc = m_application.Document as IMxDocument;
IActiveView pActiveView = m_doc.FocusMap as IActiveView;
IPoint point1 = pActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);
Подскажите как теперь правильно организовать пространственный
запрос, если необходимо проанализировать несколько слоев
в FocusMap.
Заранее спасибо за ответ
Re: Работа с мышью
Добавлено: 26 сен 2011, 23:09
BodyZ
Нашел такой вариант.
Executing spatial queries
Пока разбираюсь