Здравствуйте! В своем приложении, я использую 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-такой-то.