как узнать FeatureLayer?

0 голосов
спросил 10 Фев, 05 от Ulukbek (6,020 баллов) в категории Программные продукты Esri

   Dim pFeat As IFeature
   Dim pSelected As IEnumFeature
   Dim mxDoc As IMxDocument
  
   Set mxDoc = pDllAppl.Document
   Set pSelected = mxDoc.FocusMap.FeatureSelection
   pSelected.Reset
   Set pFeat = pSelected.Next

Тут я имею один выбранный объект на карте, как мне добраться до его FeatureLayer-а? Т.е. мне нужен боратный процесс в цепочке MxDoc->Layer->FeatureClass->Feature, имея Feature мне надо вытащить его Layer.

pFeat.Class.AliasName - это имя алиаса.

5 Ответы

0 голосов
ответил 10 Фев, 05 от Гость (210,080 баллов)

Попробуй использовать этот код

Dim mxDoc As IMxDocument

Dim pFeatClass As IFeatureClass

Dim MyFeature As IFeature

Dim pMap As IMap
 Dim pLayer As ILayer 

Dim pInputFeatLayer As IFeatureLayer

Dim SearchCursor As IFeatureCursor

Set mxDoc = ThisDocument

  Set pMap = mxDoc.FocusMap

Set pLayer = mxDoc.SelectedLayer

Set pInputFeatLayer = pLayer

Set pFeatClass = pInputFeatLayer.FeatureClass

Set SearchCursor = pFeatClass.Search(Nothing, False)

' далее в цикле можешь просмотреть все Features из pFeatClass

 
Set MyFeature = SearchCursor.NextFeature

0 голосов
ответил 10 Фев, 05 от Ulukbek (6,020 баллов)
Вы неправильно поняли вопрос, это я проделываю тысячу раз, мне нужна обратная связь!
0 голосов
ответил 10 Фев, 05 от Alexander1 (32,520 баллов)

Dim pFeatureClass As IFeatureClass

Set pFeatureClass = pFeat .Class

А затем перебрать все слои карты и найти слой с этим FeatureClass:

If pLayer.FeatureClass.AliasName = pFeatureClass.AliasName Then

............................................

End If

0 голосов
ответил 11 Фев, 05 от Ulukbek (6,020 баллов)

Спасибо, я так и делал.

Но думал, есть прямая связь!

0 голосов
ответил 11 Фев, 05 от Alexander1 (32,520 баллов)

Прямая связь у Feature может быть только с FeatureClass - можно сказать они есть величины постоянные.

А FeatureLayer object существует только для данной сессии ArcMap.

 

 

Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...