Идентификация слоя в точке клика мыши

0 голосов
спросил 26 Май, 08 от malcomoffice (200 баллов) в категории Программные продукты Esri

Здравствуйте! В своем приложении, я использую mapcontrol 8.2. В него загружается карта. Подскажите, как определить имя слоя, по которому произведен клик мыши в mapcontrol, т.е. при нажатии мыши по карте определить имя слоя или его номер, на который попал курсор мыши.

Есть пример такого кода:

Set pMxApp = Application

  Set pDoc = Application.Document

  Set pMap = pDoc.FocusMap

  Set pIdentify = pMap.Layer(0)

 

  'Convert x and y to map units

  Set pPoint = pMxApp.Display.DisplayTransformation.ToMapPoint(x, y)

  Set pIDArray = pIdentify.Identify(pPoint)

 

  'Get the FeatureIdentifyObject

  If Not pIDArray Is Nothing Then

    Set pFeatIdObj = pIDArray.Element(0)

    Set pIdObj = pFeatIdObj

    pIdObj.Flash pMxApp.Display

    'Report info from FeatureIdentifyObject

    MsgBox "Layer:" & pIdObj.Layer.Name & vbNewLine & "Feature:" & pIdObj.Name

  Else

    MsgBox "No feature identified."

  End If

Но он мне не подходит, потому что тут уже определена переменная  pIdentify = pMap.Layer(0). Т.е. заранее известен слой, объекты которого идентифицируются. А мне надо определять объекты слоя, который попадает под курсор. Это может произойти в любом месте карты. Как это сделать. В общем, мне нужно чтобы при клике мышкой в любом месте карты, выводилось сообщение Layer-такой-то Feature-такой-то.

3 Ответы

0 голосов
ответил 26 Май, 08 от a-subbotin (500 баллов)
Организуй цикл по слоям от 0 до pMap.LayerCount и выполняй описанный алгоритм где  Set pIdentify = pMap.Layer(i). Надеюсь, мысль понятна ))
0 голосов
ответил 27 Май, 08 от Igoryuha (1,340 баллов)
axMapControl1.ActiveView.FocusMap.ActiveGraphicsLayer - не пробовал не вкус? :)
0 голосов
ответил 27 Май, 08 от Alexander1 (32,520 баллов)
Не думаю, что GraphicsLayer имеет отношение к map layers в данном контексте.

Автору: почитай:

http://forums.esri.com/Thread.asp?c=93&f=992&t=83722.
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...