Here's how it can be done with SharpMap and NTS (Decorator Pattern):
public void InitializeMap(SharpMap.Map map)
{
ShapeFile shp = new SharpMap.Data.Providers.ShapeFile("rivers.shp", true);
//Create NTS Datasource that gets its data from 'shp' and calls 'NtsOperation' that defines a geoprocessing method
NtsProvider nts = new SharpMap.Data.Providers.NtsProvider(shp,new SharpMap.Data.Providers.NtsProvider.GeometryOperationDelegate(NtsOperation));
//Create the layer for rendering
SharpMap.Layers.VectorLayer layRivers = new SharpMap.Layers.VectorLayer("Rivers");
layRivers.DataSource = nts;
layRivers.Style.Fill = Brushes.Blue;
map.Layers.Add(layRivers);
}
//Define geoprocessing delegate that buffers all geometries with a distance of 0.5 mapunits
public static void NtsOperation(List<GisSharpBlog.NetTopologySuite.Features.Feature> geoms)
{
foreach (GisSharpBlog.NetTopologySuite.Features.Feature f in geoms)
f.Geometry = f.Geometry.Buffer(0.5);
}
1 Comment
Unknown User (don)
Here's how it can be done with SharpMap and NTS (Decorator Pattern):