To create a buffered polygon you can use the opengis buffer operator or use bevelling

It can go wrong: test.svg

  • No labels

1 Comment

  1. Unknown User (don)

    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);                                                                                                                                    
    }