FAQ
フィーチャ レイヤーのフィルター設定

ナレッジ番号:5278 | 登録日:2023/07/26 | 更新日:2023/12/28

概要

このサンプル コードは、フィルター設定(レイヤーのプロパティ ページから指定)をプログラムから行う方法を示します。フィルタ設定を設定すると、レイヤーのフィーチャを絞り込んで表示することができます。

フィーチャ レイヤーのフィルター設定

ArcMap 上の一番上位のレイヤーに対し、フィルター設定を行うサンプルです。検索条件式ではフィールドを囲む記号について、対象となるワークスペースに対して適切に作成する必要があります。

//最上位のレイヤーの取得
IFeatureLayer pFeatureLayer = ArcMap.Document.FocusMap.get_Layer(0) as IFeatureLayer;

IDataset pData = pFeatureLayer as IDataset;
IWorkspace pWorkspace = pData.Workspace;
ISQLSyntax pSQLSyntax = pWorkspace as ISQLSyntax;
IFeatureLayerDefinition pFeatureLayerDefinition = pFeatureLayer as IFeatureLayerDefinition;

//レイヤーのフィルター設定
pFeatureLayerDefinition.DefinitionExpression = pSQLSyntax.GetSpecialCharacter(esriSQLSpecialCharacters.esriSQL_DelimitedIdentifierPrefix) + pFeatureLayer.FeatureClass.OIDFieldName + pSQLSyntax.GetSpecialCharacter(esriSQLSpecialCharacters.esriSQL_DelimitedIdentifierSuffix) + " < 5";

//再描画
ArcMap.Document.ActiveView.Refresh();
'最上位のレイヤーの取得
Dim pFeatureLayer As IFeatureLayer = CType(My.ArcMap.Document.FocusMap.Layer(0), IFeatureLayer)

Dim pData As IDataset = CType(pFeatureLayer, IDataset)
Dim pWorkspace As IWorkspace = pData.Workspace
Dim pSQLSyntax As ISQLSyntax = CType(pWorkspace, ISQLSyntax)
Dim pFeatureLayerDefinition As IFeatureLayerDefinition = CType(pFeatureLayer, IFeatureLayerDefinition)

'レイヤーのフィルター設定
pFeatureLayerDefinition.DefinitionExpression = pSQLSyntax.GetSpecialCharacter(esriSQLSpecialCharacters.esriSQL_DelimitedIdentifierPrefix) +
pFeatureLayer.FeatureClass.OIDFieldName + pSQLSyntax.GetSpecialCharacter(esriSQLSpecialCharacters.esriSQL_DelimitedIdentifierSuffix) + " < 5"

'再描画
My.ArcMap.Document.ActiveView.Refresh()

ArcMap 上で変更する方法

[コンテンツ] ウィンドウで最上位のレイヤーを右クリック → [プロパティ] → [レイヤー プロパティ] → [フィルター設定] でも、レイヤーのフィルター設定を行うことができます。

 Image

メタデータ

種類

製品