public bool CanSetFilterGeometry( Geometry filterGeometry )
Public Function CanSetFilterGeometry( _ ByVal filterGeometry As Geometry _ ) As Boolean
Parameters
- filterGeometry
- The filter geometry to check
public bool CanSetFilterGeometry( Geometry filterGeometry )
Public Function CanSetFilterGeometry( _ ByVal filterGeometry As Geometry _ ) As Boolean
// Note: Run within QueuedTask.Run // Set the spatial filter geometry //Get the geometry from the selected features in the feature layer var spatialClauseGeom = spatialDefnLayer.GetFeatureOutline(MapView.Active, FeatureOutlineType.Selected); DefinitionQuery definitionQuery = new DefinitionQuery { WhereClause = whereClause, Name = $"{layerToQuery.Name}" }; //Setting the spatial filter to the Definition Query if (definitionQuery.CanSetFilterGeometry(spatialClauseGeom)) { definitionQuery.SetFilterGeometry(spatialClauseGeom); } layerToQuery.InsertDefinitionQuery(definitionQuery); layerToQuery.SetActiveDefinitionQuery(definitionQuery.Name);
var greatLakes = map.GetLayersAsFlattenedList() .OfType<FeatureLayer>().First(l => l.Name == "Great Lakes"); var usa_states = map.GetLayersAsFlattenedList() .OfType<FeatureLayer>().First(l => l.Name == "US_States"); QueuedTask.Run(() => { //name must be unique var def_query = new DefinitionQuery("GreatLakes", "NAME in ('Huron','Michigan','Erie')"); //create a filter geometry - in this example we will use the outline geometry //of all visible features from a us states layer...the filter geometry will be //intersected with the layer feature geometry when added to the def query var filter_geom = usa_states.GetFeatureOutline(mv, FeatureOutlineType.Visible); //other options... //var filter_geom = usa_states.GetFeatureOutline(mv, FeatureOutlineType.All); //var filter_geom = usa_states.GetFeatureOutline(mv, FeatureOutlineType.Selected); //Geometry must have a valid SR and be point, multi-point, line, or poly if (def_query.CanSetFilterGeometry(filter_geom)) { def_query.SetFilterGeometry(filter_geom); } //Apply the def query greatLakes.InsertDefinitionQuery(def_query); //Set it active greatLakes.SetActiveDefinitionQuery(def_query.Name); //or....also - set it active when it is inserted //greatLakes.InsertDefinitionQuery(def_query, true); });
Target Platforms: Windows 11, Windows 10