using System.Collections.Generic; using System.Drawing; using GeoAPI.Extensions.Feature; using GeoAPI.Geometries; using SharpMap.Api.Layers; namespace SharpMap.Api { public interface IFeatureRenderer { /// /// Renders feature on a given map. /// /// Feature to render /// Graphics object to be used as a target for rendering /// Layer where feature belongs to /// When rendering succeds - returns true, otherwise false bool Render(IFeature feature, Graphics g, ILayer layer); /// /// return polygon (???) /// /// IGeometry GetRenderedFeatureGeometry(IFeature feature, ILayer layer); /// /// return intertected features /// /// /// IEnumerable GetFeatures(IGeometry geometry, ILayer layer); // also move to ILayer //GetIntersectedFeatures will return List of features; cache the polygon features in the custom renderer //GetRenderedFeatureGeometry will return Feature.Geometry by default IEnumerable GetFeatures(IEnvelope box, ILayer layer); } }