FAQ
選択したフィーチャの属性値が取得できない

ナレッジ番号:5487 | 登録日:2023/07/27 | 更新日:2024/12/02

【概要】

以下のコードのように、IMap::FeatureSelectionプロパティを使用してArcMapで選択したフィーチャを取得し、
その属性値を取得しようとしてもEmpty値が返ります。


Dim pMxDoc As IMxDocument
Set pMxDoc = ThisDocument

Dim pSelection As ISelection
Set pSelection = pMxDoc.FocusMap.FeatureSelection

Dim pEnumFeature As IEnumFeature
Set pEnumFeature = pSelection

Dim pFeature As IFeature
Set pFeature = pEnumFeature.Next

Do Until pFeature Is Nothing
  Debug.Print pFeature.Value(3)
  Set pFeature = pEnumFeature.Next
Loop


【原因】

FeatureSelectionプロパティによって取得した選択フィーチャはデフォルトではShapeフィールドしか持っていません。
これはIMap::FeatureSelectionプロパティが主にマップの選択フィーチャを描画することを目的としているためです。


【解決策】

属性フィールドへもアクセスできるようにするためには、IEnumFeatureSetup::AllFieldsプロパティにTrueを指定します。

Dim pFeaturesetup As IEnumFeatureSetup
Set pFeaturesetup = pEnumFeature
pFeaturesetup.AllFields = True

メタデータ

種類

製品