FAQ
ArcMapでジオメトリがNullのフィーチャを見つける方法

ナレッジ番号:5489 | 登録日:2023/07/27 | 更新日:2024/11/21

【概要】

テーブル・ウィンドウを使用するとジオメトリを持たないフィーチャを作成することができます。
すなわちShapeフィールドがNull値ということです。

以下にジオメトリがNullでないフィーチャのみを選択するコードを記述します。


【手順】

  1. ArcMapにフィーチャクラスを追加します。

  2. TOCでフィーチャクラスを選択します。

  3. 新規UIButtonControlを作成します。

    ※UIControlを作成する詳細については、ArcGIS Desktop Helpの"How to create custom commands with VBA"というトピックをご覧下さい。

  4. UIButtonControlをダブル・クリックし、ソース・コードを開きます。

  5. UIButtonControlのClickイベントに以下のコードをコピーします。

    
    Dim pMxDoc As IMxDocument
    Set pMxDoc = ThisDocument
    Dim pMap As IMap
    Set pMap = pMxDoc.FocusMap
    
    
    
    
    ' TOCで選択されたレイヤがあるかどうかを確認します。
    If pMxDoc.SelectedItem Is Nothing Then
      MsgBox "TOCでいずれかのアイテムを選択する必要があります"
      Exit Sub
    End If
    If Not TypeOf pMxDoc.SelectedItem Is IFeatureLayer Then
      MsgBox "TOCでレイヤを選択してください"
      Exit Sub
    End If
    Dim pDispTab As IDisplayTable
    Set pDispTab = pMxDoc.SelectedItem
    ' 空の選択セットを作成します。一方では全てのフィーチャを格納したFeatureCursorを取得します。
    Dim pFCursor As IFeatureCursor
    Dim pSelSet As ISelectionSet
    Dim pTable As ITable
    Dim pFeatCls As IFeatureClass
    Dim pFeat As IFeature
    Set pTable = pDispTab.DisplayTable
    Set pSelSet = pTable.Select(Nothing, esriSelectionTypeHybrid, _
    
      esriSelectionOptionEmpty, Nothing) Set pFeatCls = pTable Set pFCursor = pFeatCls.Search(Nothing, False) ' ジオメトリがNullでないフィーチャを選択セットに追加します。 Set pFeat = pFCursor.NextFeature Do While (Not pFeat Is Nothing) If Not pFeat.Shape Is Nothing Then If Not pFeat.Shape.IsEmpty Then If pFeat.HasOID Then pSelSet.Add pFeat.OID End If End If End If Set pFeat = pFCursor.NextFeature Loop ' レイヤに選択セットを適用します。 Dim pActiveView As IActiveView Dim pFeatSel As IFeatureSelection Set pActiveView = pMap Set pFeatSel = pDispTab pActiveView.PartialRefresh esriViewGeoSelection, Nothing, Nothing Set pFeatSel.SelectionSet = pSelSet pActiveView.PartialRefresh esriViewGeoSelection, Nothing, Nothing
  6. Visual Basic Editorを閉じ、UIButtonControlをクリックしてコードを実行します。

  7. フィーチャクラスを右クリックし、「属性テーブルを開く」を選択すると、ジオメトリがNullでないフィーチャのみが強調表示されています。

メタデータ

機能

種類

製品