пропадает OID у выбранных объектов

0 голосов
спросил 07 Март, 07 от sschainik (4,900 баллов) в категории Программные продукты Esri
    Всем доброго времени суток.
Столкнулся с интересным багом при выполнении следующего кода:
    Dim pMxDoc As IMxDocument
    Dim pMap As IMap
    Dim pFeature As IFeature
    Dim pCollection As Collection
    Dim pIFeatureCursor As IFeatureCursor
    Dim pIEnumFeature As IEnumFeature
    Set pCollection = New Collection
    Set pMxDoc = Application.Document
    Set pMap = pMxDoc.FocusMap
    Set pIEnumFeature = pMap.FeatureSelection
    Set pFeature = pIEnumFeature.Next
    Do Until pFeature Is Nothing
        If pFeature.HasOID Then
            pCollection.Add pFeature.OID
        End If
        Set pFeature = pIEnumFeature.Next
    Loop
все данные хранятся в базе данных на SQL и соответственно все имеют OID, однако если выбрано много объектов одного класса пространственных объектов, то для всех объектов этого класса pFeature.HasOID = false, а у объектов других классов (у которых выделено не много объектов) pFeature.HasOID = true.
И соответственно вопрос в том куда пропадает OID и как его получить? Может кто сталкивался с таким случаем?

2 Ответы

0 голосов
ответил 07 Март, 07 от Alexander1 (32,520 баллов)
"Note,
    only the shape field is guaranteed with the selection.. This is the default and exists for performance reasons. The IMap::FeatureSelection property is typically used to draw the map selection, not access feature attributes. This is particularly noticeable with shapefiles and coverage but also in geodatabases if the selection is large enough. Use IEnumFeatureSetup::AllFields to set a flag indicating all fields be returned with the selection. If you want to loop through the map selection to perform an operation, it is typically best to access each layer's selection rather than the entire map's selection. See the example for a sample of each."
0 голосов
ответил 09 Март, 07 от sschainik (4,900 баллов)
спасибо! все заработало
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...