public static IEnumerable <IFeature> QueryFeatures(this ILayer layer, SpatialQueryOperation operation, object param, double tol) { if (operation == SpatialQueryOperation.Point) { var pos = (Vector)param; return(PointQuery(layer, pos, tol)); } else if (operation == SpatialQueryOperation.Window) { var extents = (Extents)param; return(WindowQuery(layer, extents)); } else if (operation == SpatialQueryOperation.Cross) { var extents = (Extents)param; return(CrossQuery(layer, extents)); } return(null); }
public static IEnumerable <IFeature> QueryFeatures(this Map map, SpatialQueryOperation operation, object param, double tol) { return(map.Layers.SelectMany(layer => MapQueryServices.QueryFeatures(layer, operation, param, tol))); }
public static ILookup <ILayer, IFeature> QueryFeaturesGroupedByLayer(this Map map, SpatialQueryOperation operation, object param, double tol) { return(map.Layers.ToLookup( keySelector: layer => layer, valuesSelector: layer => layer.QueryFeatures(operation, param, tol))); }