Esempio n. 1
0
        public static SharpMap.Map InitializeMap(float angle)
        {
            var dataSource = new SharpMap.Data.Providers.ShapeFile(
                string.Format("{0}/roads.shp", ShapefileSample.PathOsm), true);
            
            var fds = new SharpMap.Data.FeatureDataSet();
            dataSource.Open();
            dataSource.ExecuteIntersectionQuery(dataSource.GetExtents(), fds);
            dataSource.Close();

            var gfp = new SharpMap.Data.Providers.GeometryFeatureProvider(fds.Tables[0]);
            var vl = new SharpMap.Layers.VectorLayer("roads", gfp)
                         {
                             CoordinateTransformation = LayerTools.Dhdn2ToWgs84
                         };
            var ll = new SharpMap.Layers.LabelLayer("labels")
                         {
                             DataSource = gfp,
                             CoordinateTransformation = LayerTools.Dhdn2ToWgs84,
                             LabelColumn = "name",
                             MultipartGeometryBehaviour =
                                 SharpMap.Layers.LabelLayer.MultipartGeometryBehaviourEnum.Largest,
                         };
            ll.Style.Halo = new System.Drawing.Pen(System.Drawing.Color.Red);
            //ll.Style.IgnoreLength = true;

            var map = new SharpMap.Map();
            map.Layers.Add(vl);
            map.Layers.Add(ll);

            map.Layers.Add(vl);
            map.ZoomToExtents();
            return map;
        }
        public void TestListPointSymbolizer()
        {
            var fdt = TestData.CreatingData.CreatePointFeatureDataTableFromArrays(
                TestData.CreatingData.GetRandomOrdinates(50, -180, 180), TestData.CreatingData.GetRandomOrdinates(50, -90, 90), null);
            var geometryFeatureProvider = new SharpMap.Data.Providers.GeometryFeatureProvider(fdt);
            var layer = new SharpMap.Layers.VectorLayer("randompoints", geometryFeatureProvider);
            var pps =
                SharpMap.Rendering.Symbolizer.PathPointSymbolizer.CreateSquare(new System.Drawing.Pen(System.Drawing.Color.Red, 2),
                                                                    new System.Drawing.SolidBrush(
                                                                        System.Drawing.Color.DodgerBlue), 20);

            var cps = new SharpMap.Rendering.Symbolizer.CharacterPointSymbolizer
            {
                Halo = 1,
                HaloBrush = new System.Drawing.SolidBrush(System.Drawing.Color.WhiteSmoke),
                Foreground = new System.Drawing.SolidBrush(System.Drawing.Color.Black),
                Font = new System.Drawing.Font("Arial", 12),
                CharacterIndex = 65
            };

            var lps = new SharpMap.Rendering.Symbolizer.ListPointSymbolizer { pps, cps };

            layer.Style.PointSymbolizer = lps;
            var map = new SharpMap.Map(new System.Drawing.Size(720, 360));
            map.Layers.Add(layer);
            map.ZoomToExtents();
            map.GetMap().Save("ListPointSymbolizer1.bmp");
        }
Esempio n. 3
0
        public void TestListPointSymbolizer()
        {
            var fdt = CreatingData.CreatePointFeatureDataTableFromArrays(
                CreatingData.GetRandomOrdinates(50, -180, 180), CreatingData.GetRandomOrdinates(50, -90, 90), null);
            var geometryFeatureProvider = new SharpMap.Data.Providers.GeometryFeatureProvider(fdt);
            var layer = new SharpMap.Layers.VectorLayer("randompoints", geometryFeatureProvider);
            var pps   =
                SharpMap.Styles.Symbolizer.PathPointSymbolizer.CreateSquare(new System.Drawing.Pen(System.Drawing.Color.Red, 2),
                                                                            new System.Drawing.SolidBrush(
                                                                                System.Drawing.Color.DodgerBlue), 20);

            var cps = new SharpMap.Styles.Symbolizer.CharacterPointSymbolizer
            {
                Halo           = 1,
                HaloBrush      = new System.Drawing.SolidBrush(System.Drawing.Color.WhiteSmoke),
                Foreground     = new System.Drawing.SolidBrush(System.Drawing.Color.Black),
                Font           = new System.Drawing.Font("Arial", 12),
                CharacterIndex = 65
            };

            var lps = new SharpMap.Styles.Symbolizer.ListPointSymbolizer {
                pps, cps
            };

            layer.Style.PointSymbolizer = lps;
            var map = new SharpMap.Map(new System.Drawing.Size(720, 360));

            map.Layers.Add(layer);
            map.ZoomToExtents();
            map.GetMap().Save("ListPointSymbolizer1.bmp");
        }
Esempio n. 4
0
        public void TestCharacterPointSymbolizer()
        {
            var fdt = CreatingData.CreatePointFeatureDataTableFromArrays(
                CreatingData.GetRandomOrdinates(50, -180, 180), CreatingData.GetRandomOrdinates(50, -90, 90), null);
            var geometryFeatureProvider = new SharpMap.Data.Providers.GeometryFeatureProvider(fdt);
            var layer = new SharpMap.Layers.VectorLayer("randompoints", geometryFeatureProvider);
            var cps   = new SharpMap.Styles.Symbolizer.CharacterPointSymbolizer
            {
                Halo      = 1,
                HaloBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Wheat),
                //Font = new System.Drawing.Font("Arial", 12),
                CharacterIndex = 0xcc,
            };

            layer.Style.PointSymbolizer = cps;
            var map = new SharpMap.Map(new System.Drawing.Size(720, 360));

            map.Layers.Add(layer);
            map.ZoomToExtents();
            map.GetMap().Save("CharacterPointSymbolizer1.bmp");

            cps.Rotation = -30;
            cps.Offset   = new System.Drawing.PointF(4, 4);
            map.GetMap().Save("CharacterPointSymbolizer2.bmp");

            cps.Font     = new System.Drawing.Font("Arial", 12);
            cps.Text     = "ABC";
            cps.Offset   = System.Drawing.PointF.Empty;
            cps.Rotation = -90;
            map.GetMap().Save("CharacterPointSymbolizer3.bmp");
        }
        public void TestCharacterPointSymbolizer()
        {
            var fdt = TestData.CreatingData.CreatePointFeatureDataTableFromArrays(
                TestData.CreatingData.GetRandomOrdinates(50, -180, 180), TestData.CreatingData.GetRandomOrdinates(50, -90, 90), null);
            var geometryFeatureProvider = new SharpMap.Data.Providers.GeometryFeatureProvider(fdt);
            var layer = new SharpMap.Layers.VectorLayer("randompoints", geometryFeatureProvider);
            var cps  = new SharpMap.Rendering.Symbolizer.CharacterPointSymbolizer
                                              {
                                                  Halo = 1,
                                                  HaloBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Wheat),
                                                  //Font = new System.Drawing.Font("Arial", 12),
                                                  CharacterIndex = 0xcc,
                                              };
            layer.Style.PointSymbolizer = cps;
            var map = new SharpMap.Map(new System.Drawing.Size(720, 360));

            map.Layers.Add(layer);
            map.ZoomToExtents();
            map.GetMap().Save("CharacterPointSymbolizer1.bmp");

            cps.Rotation = -30;
            cps.Offset = new System.Drawing.PointF(4, 4);
            map.GetMap().Save("CharacterPointSymbolizer2.bmp");

            cps.Font = new System.Drawing.Font("Arial", 12);
            cps.Text = "ABC";
            cps.Offset = System.Drawing.PointF.Empty;
            cps.Rotation = -90;
            map.GetMap().Save("CharacterPointSymbolizer3.bmp");
        }
Esempio n. 6
0
        public void TestPathPointSymbolizer()
        {
            var fdt = CreatingData.CreatePointFeatureDataTableFromArrays(
                CreatingData.GetRandomOrdinates(50, -180, 180), CreatingData.GetRandomOrdinates(50, -90, 90), null);
            var geometryFeatureProvider = new SharpMap.Data.Providers.GeometryFeatureProvider(fdt);
            var layer = new SharpMap.Layers.VectorLayer("randompoints", geometryFeatureProvider);
            var pps =
                SharpMap.Styles.Symbolizer.PathPointSymbolizer.CreateSquare(new System.Drawing.Pen(System.Drawing.Color.Red, 2),
                                                                    new System.Drawing.SolidBrush(
                                                                        System.Drawing.Color.DodgerBlue), 20);
            layer.Style.PointSymbolizer = pps;
            var map = new SharpMap.Map(new System.Drawing.Size(720, 360));
            map.Layers.Add(layer);
            map.ZoomToExtents();
            map.GetMap().Save("PathPointSymbolizer1.bmp");

            pps.Rotation = -30;
            map.GetMap().Save("PathPointSymbolizer2.bmp");

            pps.Rotation = 0f;
            pps.Offset = new System.Drawing.PointF(4, 4);
            map.GetMap().Save("PathPointSymbolizer3.bmp");

            var gpTriangle1 = new System.Drawing.Drawing2D.GraphicsPath();
            gpTriangle1.AddPolygon(new [] { new System.Drawing.Point(0, 0), new System.Drawing.Point(5, 10), new System.Drawing.Point(10, 0), new System.Drawing.Point(0, 0), });
            var gpTriangle2 = new System.Drawing.Drawing2D.GraphicsPath();
            gpTriangle2.AddPolygon(new[] { new System.Drawing.Point(0, 0), new System.Drawing.Point(-5, -10), new System.Drawing.Point(-10, 0), new System.Drawing.Point(0, 0), });
            pps = new
                SharpMap.Styles.Symbolizer.PathPointSymbolizer(new[]
                                                        {
                                                            new SharpMap.Styles.Symbolizer.PathPointSymbolizer.PathDefinition
                                                                {
                                                                    Path = gpTriangle1,
                                                                    Line =
                                                                        new System.Drawing.Pen(
                                                                        System.Drawing.Color.Red, 2),
                                                                    Fill =
                                                                        new System.Drawing.SolidBrush(
                                                                        System.Drawing.Color.DodgerBlue)
                                                                },
                                                            new SharpMap.Styles.Symbolizer.PathPointSymbolizer.PathDefinition
                                                                {
                                                                    Path = gpTriangle2,
                                                                    Line =
                                                                        new System.Drawing.Pen(
                                                                        System.Drawing.Color.DodgerBlue, 2),
                                                                    Fill =
                                                                        new System.Drawing.SolidBrush(
                                                                        System.Drawing.Color.Red)
                                                                }

                                                        }){ Rotation = 45 };

            layer.Style.PointSymbolizer = pps;
            map.GetMap().Save("PathPointSymbolizer4.bmp");
            pps.Rotation = 180;
            map.GetMap().Save("PathPointSymbolizer5.bmp");

        }
 public void TestSetUp()
 {
     using (var sf = new SharpMap.Data.Providers.ShapeFile(GetTestDataFilePath("roads_ugl.shp")))
     {
         sf.Open();
         var fds = new SharpMap.Data.FeatureDataSet();
         sf.ExecuteIntersectionQuery(sf.GetExtents(), fds);
         _provider = new SharpMap.Data.Providers.GeometryFeatureProvider(fds.Tables[0]);
     }
 }
 public void TestSetUp()
 {
     using (var sf = new SharpMap.Data.Providers.ShapeFile(GetTestDataFilePath("roads_ugl.shp")))
     {
         sf.Open();
         var fds = new SharpMap.Data.FeatureDataSet();
         sf.ExecuteIntersectionQuery(sf.GetExtents(), fds);
         _provider = new SharpMap.Data.Providers.GeometryFeatureProvider(fds.Tables[0]);
     }
 }
        private SharpMap.Map CreateMap()
        {
            var m = new SharpMap.Map(new System.Drawing.Size(1440, 1080))
            {
                BackColor = System.Drawing.Color.LightSkyBlue
            };

            m.SRID = 3857;

            var originX = 100.0;
            var originY = 7.0;
            var gap     = 0.002;

            //create 4 layers varying scale only
            m.Layers.Add(CreateRpsLayer(originX + 0 * gap, originY + 2 * gap, 1, 0));
            m.Layers.Add(CreateRpsLayer(originX + 1 * gap, originY + 2 * gap, 0.5f, 0));
            m.Layers.Add(CreateRpsLayer(originX + 2 * gap, originY + 2 * gap, 0.25f, 0));
            m.Layers.Add(CreateRpsLayer(originX + 3 * gap, originY + 2 * gap, 2, 0));

            //create 4 layers varying rotn  only
            m.Layers.Add(CreateRpsLayer(originX + 0 * gap, originY + 1 * gap, 0, 45));
            m.Layers.Add(CreateRpsLayer(originX + 1 * gap, originY + 1 * gap, 0, 135));
            m.Layers.Add(CreateRpsLayer(originX + 2 * gap, originY + 1 * gap, 0, 225));
            m.Layers.Add(CreateRpsLayer(originX + 3 * gap, originY + 1 * gap, 0, 315));

            //create 4 layers varying scale + rotn
            m.Layers.Add(CreateRpsLayer(originX + 0 * gap, originY + 0 * gap, 1, 45));
            m.Layers.Add(CreateRpsLayer(originX + 1 * gap, originY + 0 * gap, 0.5f, 135));
            m.Layers.Add(CreateRpsLayer(originX + 2 * gap, originY + 0 * gap, 0.25f, 225));
            m.Layers.Add(CreateRpsLayer(originX + 3 * gap, originY + 0 * gap, 2, 315));

            //create a pseudo-graticule for visual reference
            LineString[] graticule = new LineString[7];
            graticule[0] = new LineString(new Coordinate[] { new Coordinate(originX - gap, originY + 0 * gap), new Coordinate(originX + 4 * gap, originY + 0 * gap) });
            graticule[1] = new LineString(new Coordinate[] { new Coordinate(originX - gap, originY + 1 * gap), new Coordinate(originX + 4 * gap, originY + 1 * gap) });
            graticule[2] = new LineString(new Coordinate[] { new Coordinate(originX - gap, originY + 2 * gap), new Coordinate(originX + 4 * gap, originY + 2 * gap) });

            graticule[3] = new LineString(new Coordinate[] { new Coordinate(originX + 0 * gap, originY - gap), new Coordinate(originX + 0 * gap, originY + 3 * gap) });
            graticule[4] = new LineString(new Coordinate[] { new Coordinate(originX + 1 * gap, originY - gap), new Coordinate(originX + 1 * gap, originY + 3 * gap) });
            graticule[5] = new LineString(new Coordinate[] { new Coordinate(originX + 2 * gap, originY - gap), new Coordinate(originX + 2 * gap, originY + 3 * gap) });
            graticule[6] = new LineString(new Coordinate[] { new Coordinate(originX + 3 * gap, originY - gap), new Coordinate(originX + 3 * gap, originY + 3 * gap) });

            var pr = new SharpMap.Data.Providers.GeometryFeatureProvider(graticule);

            pr.SRID = 4326;
            var vl = new SharpMap.Layers.VectorLayer("Graticule", pr);

            vl.TargetSRID = 3857;
            m.Layers.Add(vl);


            return(m);
        }
Esempio n. 10
0
        public void DoTest()
        {
            SharpMap.Data.Providers.ShapeFile sf  = new SharpMap.Data.Providers.ShapeFile("cities.shp");
            SharpMap.Data.FeatureDataSet      fds = new SharpMap.Data.FeatureDataSet();
            sf.ExecuteIntersectionQuery(sf.GetExtents(), fds);
            SharpMap.Data.Providers.GeometryFeatureProvider gfp =
                new SharpMap.Data.Providers.GeometryFeatureProvider(fds.Tables[0]);

            System.Data.DataTable dt = new System.Data.DataTable("external");
            dt.Columns.Add("city", typeof(string));
            dt.Columns.Add("males", typeof(int));
            dt.Columns.Add("females", typeof(int));
        }
Esempio n. 11
0
        public void TestIssue78()
        {
            string jsonFile = TestUtility.GetPathToTestFile("FeatureCollection.json");

            if (!System.IO.File.Exists(jsonFile))
            {
                Assert.Ignore("Test file {0} not present.", jsonFile);
            }

            string json = System.IO.File.ReadAllText(jsonFile);
            var    env  = new Envelope();

            using (var map = new SharpMap.Map(new System.Drawing.Size(800, 400)))
            {
                map.Layers.Add(new SharpMap.Layers.TileLayer(
                                   BruTile.Predefined.KnownTileSources.Create(BruTile.Predefined.KnownTileSource.BingRoadsStaging, string.Empty), "BingRoad"));

                var rss        = Newtonsoft.Json.Linq.JObject.Parse(json);
                var jsonReader = new NetTopologySuite.IO.GeoJsonReader();

                foreach (var shape in rss["features"])
                {
                    var feature = jsonReader.Read <IFeature>(shape.ToString(Newtonsoft.Json.Formatting.None));
                    var geom    = feature.Geometry;

                    var fp    = new SharpMap.Data.Providers.GeometryFeatureProvider(geom);
                    var layer = new SharpMap.Layers.VectorLayer("geojson", fp);

                    layer.CoordinateTransformation = new
                                                     ProjNet.CoordinateSystems.Transformations.CoordinateTransformationFactory().CreateFromCoordinateSystems(
                        ProjNet.CoordinateSystems.GeographicCoordinateSystem.WGS84,
                        ProjNet.CoordinateSystems.ProjectedCoordinateSystem.WebMercator);

                    layer.Style = new SharpMap.Styles.VectorStyle
                    {
                        Fill          = new System.Drawing.SolidBrush(System.Drawing.Color.FromArgb(100, 255, 0, 0)),
                        Outline       = new System.Drawing.Pen(System.Drawing.Color.Red, 1.5f),
                        EnableOutline = true
                    };

                    env.ExpandToInclude(layer.Envelope);
                    map.Layers.Add(layer);
                }

                map.ZoomToBox(env);
                map.Zoom *= 1.1;

                using (var img = map.GetMap())
                    img.Save(System.IO.Path.Combine(UnitTestsFixture.GetImageDirectory(this), $"TestIssue78.png"));
            }
        }
Esempio n. 12
0
        public void TestRealData()
        {
            var fdt = GetRealFeatureDataTable();
            FillRealDataTable(fdt);

            var p = new SharpMap.Data.Providers.GeometryFeatureProvider(fdt);


            var m = new SharpMap.Map(new Size(640, 640));
            m.Layers.Add(new TileLayer(
                new OsmTileSource(new OsmRequest(KnownOsmTileServers.Mapnik) /*, 
                                  new FileCache(@"d:\temp\OSM", "png")*/), "OSM"));

            var l = new HeatLayer(p, "Data", 0.001f);
            l.LayerName = "HEAT";
            m.Layers.Add(l);
#if DotSpatialProjections
            l.CoordinateTransformation = new DotSpatial.Projections.CoordinateTransformation
            {
                Source = ProjectionInfo.FromEpsgCode(4326), 
                Target = ProjectionInfo.FromEpsgCode(3857)
            };
#else
            var ctfac = new ProjNet.CoordinateSystems.Transformations.CoordinateTransformationFactory();
            l.CoordinateTransformation =
                ctfac.CreateFromCoordinateSystems(ProjNet.CoordinateSystems.GeographicCoordinateSystem.WGS84,
                                                  ProjNet.CoordinateSystems.ProjectedCoordinateSystem.WebMercator);
#endif
            l.ZoomMin = 0;// 0.01 * m.GetExtents().Width;
            l.ZoomMax = /*0.9 * */m.GetExtents().Width;
            l.OpacityMax = 1;
            l.OpacityMin = 0.3f;

            m.ZoomToBox(l.Envelope);
            for (var i = 0; i < 5; i++)
            {
                using (var img = m.GetMap())
                {
                    img.Save("RealDataHeat" + i + ".png");
                }
                m.Zoom /= 2;
            }
            m.ZoomToExtents();
            using (var img = m.GetMap())
            {
                img.Save("RealDataHeat.png");
            }

        }
Esempio n. 13
0
        public static SharpMap.Map InitializeMap(float angle)
        {
            var fdt = GetRealFeatureDataTable();
            FillRealDataTable(fdt);

            var p = new SharpMap.Data.Providers.GeometryFeatureProvider(fdt);


            var m = new SharpMap.Map();
            m.BackgroundLayer.Add(new SharpMap.Layers.TileAsyncLayer(
                new BruTile.Web.OsmTileSource(
                                  new BruTile.Web.OsmRequest(KnownTileSource.OpenStreetMap),
                                  new BruTile.Cache.FileCache(@"d:\temp\OSM", "png")), "OSM"));
            m.BackgroundLayer[0].LayerName = "TileLayer with HeatLayer";

            //var l = new SharpMap.Layers.HeatLayer(p, r => 0.02f) { LayerName = "HEAT" };
            var l = new SharpMap.Layers.HeatLayer(p, "Data", 0.00025f) { LayerName = "HEAT" };
            m.Layers.Add(l);

#if DotSpatialProjections
            l.CoordinateTransformation = new DotSpatial.Projections.CoordinateTransformation
            {
                Source = DotSpatial.Projections.ProjectionInfo.FromEpsgCode(4326),
                Target = DotSpatial.Projections.ProjectionInfo.FromEpsgCode(3857)
            };
#else
            var ctfac = new ProjNet.CoordinateSystems.Transformations.CoordinateTransformationFactory();
            l.CoordinateTransformation =
                ctfac.CreateFromCoordinateSystems(ProjNet.CoordinateSystems.GeographicCoordinateSystem.WGS84,
                                                  ProjNet.CoordinateSystems.ProjectedCoordinateSystem.WebMercator);
#endif

            l.ZoomMin = 0;// 0.01 * m.GetExtents().Width;
            l.ZoomMax = /*0.9 * */m.GetExtents().Width;
            l.OpacityMax = 0.5f;
            l.OpacityMin = 0.9f;

            l.HeatColorBlend = SharpMap.Layers.HeatLayer.Classic;

            var env = l.Envelope;
            GeoAPI.Geometries.GeoAPIEx.Grow(env, env.Width * 0.05, env.Height * 0.05);
            //m.EnforceMaximumExtents = true;
            //m.MaximumExtents = env;
            m.ZoomToBox(env);

            return m;
        }
Esempio n. 14
0
        public void TestRasterPointSymbolizer()
        {
            var fdt = TestData.CreatingData.CreatePointFeatureDataTableFromArrays(
                TestData.CreatingData.GetRandomOrdinates(50, -180, 180), TestData.CreatingData.GetRandomOrdinates(50, -90, 90), null);
            var geometryFeatureProvider = new SharpMap.Data.Providers.GeometryFeatureProvider(fdt);
            var layer = new SharpMap.Layers.VectorLayer("randompoints", geometryFeatureProvider);


            var wmnStream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("UnitTests.Resources.Women.png");
            var wmnBmp    = new System.Drawing.Bitmap(wmnStream);

            var rps =
                new SharpMap.Rendering.Symbolizer.RasterPointSymbolizer {
                Symbol = wmnBmp
            };

            layer.Style.PointSymbolizer = rps;
            var map = new SharpMap.Map(new System.Drawing.Size(720, 360));

            map.Layers.Add(layer);
            map.ZoomToExtents();
            map.GetMap().Save(System.IO.Path.Combine(UnitTestsFixture.GetImageDirectory(this), "RasterPointSymbolizer1.bmp"));

            rps.Rotation = 45;
            map.GetMap().Save(System.IO.Path.Combine(UnitTestsFixture.GetImageDirectory(this), "RasterPointSymbolizer2.bmp"));
            rps.Rotation = 0;

            var cps = new SharpMap.Rendering.Symbolizer.CharacterPointSymbolizer
            {
                Halo       = 1,
                HaloBrush  = new System.Drawing.SolidBrush(System.Drawing.Color.WhiteSmoke),
                Foreground = new System.Drawing.SolidBrush(System.Drawing.Color.Black),
                Font       = new System.Drawing.Font("Arial", 12),
                Text       = "Anne",
                Offset     = new System.Drawing.PointF(0, rps.Size.Height * 0.5f)
            };

            var lps = new SharpMap.Rendering.Symbolizer.ListPointSymbolizer {
                rps, cps
            };

            layer.Style.PointSymbolizer = lps;
            map.Layers.Add(layer);
            map.ZoomToExtents();
            map.GetMap().Save(System.IO.Path.Combine(UnitTestsFixture.GetImageDirectory(this), "RasterPointSymbolizer3.bmp"));
        }
Esempio n. 15
0
        public static SharpMap.Map InitializeMap(float angle)
        {
            var fdt = GetRealFeatureDataTable();

            FillRealDataTable(fdt);

            var p = new SharpMap.Data.Providers.GeometryFeatureProvider(fdt);


            var m  = new SharpMap.Map();
            var tl = new SharpMap.Layers.TileAsyncLayer(KnownTileSources.Create(KnownTileSource.OpenStreetMap),
                                                        "TileLayer with HeatLayer", System.Drawing.Color.Transparent, false,
                                                        new BruTile.Cache.FileCache(@"d:\temp\OSM", "png"), System.Drawing.Imaging.ImageFormat.Png);

            m.BackgroundLayer.Add(tl);

            //var l = new SharpMap.Layers.HeatLayer(p, r => 0.02f) { LayerName = "HEAT" };
            var l = new SharpMap.Layers.HeatLayer(p, "Data", 0.00025f)
            {
                LayerName = "HEAT"
            };

            m.Layers.Add(l);

            var ctfac = new ProjNet.CoordinateSystems.Transformations.CoordinateTransformationFactory();

            l.CoordinateTransformation =
                ctfac.CreateFromCoordinateSystems(ProjNet.CoordinateSystems.GeographicCoordinateSystem.WGS84,
                                                  ProjNet.CoordinateSystems.ProjectedCoordinateSystem.WebMercator);

            l.ZoomMin    = 0;// 0.01 * m.GetExtents().Width;
            l.ZoomMax    = /*0.9 * */ m.GetExtents().Width;
            l.OpacityMax = 0.5f;
            l.OpacityMin = 0.9f;

            l.HeatColorBlend = SharpMap.Layers.HeatLayer.Classic;

            var env = l.Envelope;

            GeoAPI.Geometries.GeoAPIEx.Grow(env, env.Width * 0.05, env.Height * 0.05);
            //m.EnforceMaximumExtents = true;
            //m.MaximumExtents = env;
            m.ZoomToBox(env);

            return(m);
        }
Esempio n. 16
0
        public void HeatLayerTest()
        {
            var m = new SharpMap.Map(new Size(640, 480));
            var data = CreatingData.CreatePointFeatureDataTableFromArrays(
                CreatingData.GetRandomOrdinates(150, 5, 6),
                CreatingData.GetRandomOrdinates(150, 52, 53), null,
                CreatingData.GetRandomOrdinates(150, 0, 1));

            var p = new SharpMap.Data.Providers.GeometryFeatureProvider(data);
            var l = new HeatLayer(p, "Data");

            m.Layers.Add(l);
            m.ZoomToBox(new Envelope(5.4, 5.8, 52.4, 52.6));
            //m.ZoomToExtents();

            var img = m.GetMap();
            img.Save("HeatMap.png", ImageFormat.Png);
            img.Dispose();
        }
Esempio n. 17
0
        public void TestRasterPointSymbolizer()
        {
            var fdt = CreatingData.CreatePointFeatureDataTableFromArrays(
                CreatingData.GetRandomOrdinates(50, -180, 180), CreatingData.GetRandomOrdinates(50, -90, 90), null);
            var geometryFeatureProvider = new SharpMap.Data.Providers.GeometryFeatureProvider(fdt);
            var layer = new SharpMap.Layers.VectorLayer("randompoints", geometryFeatureProvider);
            var rps   =
                new SharpMap.Styles.Symbolizer.RasterPointSymbolizer {
                Symbol = new System.Drawing.Bitmap("women.png")
            };

            layer.Style.PointSymbolizer = rps;
            var map = new SharpMap.Map(new System.Drawing.Size(720, 360));

            map.Layers.Add(layer);
            map.ZoomToExtents();
            map.GetMap().Save("RasterPointSymbolizer1.bmp");

            rps.Rotation = 45;
            map.GetMap().Save("RasterPointSymbolizer2.bmp");
            rps.Rotation = 0;

            var cps = new SharpMap.Styles.Symbolizer.CharacterPointSymbolizer
            {
                Halo       = 1,
                HaloBrush  = new System.Drawing.SolidBrush(System.Drawing.Color.WhiteSmoke),
                Foreground = new System.Drawing.SolidBrush(System.Drawing.Color.Black),
                Font       = new System.Drawing.Font("Arial", 12),
                Text       = "Anne",
                Offset     = new System.Drawing.PointF(0, rps.Size.Height * 0.5f)
            };

            var lps = new SharpMap.Styles.Symbolizer.ListPointSymbolizer {
                rps, cps
            };

            layer.Style.PointSymbolizer = lps;
            map.Layers.Add(layer);
            map.ZoomToExtents();
            map.GetMap().Save("RasterPointSymbolizer3.bmp");
        }
        private SharpMap.Layers.VectorLayer CreateRpsLayer(double x, double y, float scale, float rot)
        {
            NetTopologySuite.Geometries.Point[] pts = new NetTopologySuite.Geometries.Point[1];
            pts[0] = new NetTopologySuite.Geometries.Point(x, y);
            var pr = new SharpMap.Data.Providers.GeometryFeatureProvider(pts);

            pr.SRID = 4326;
            var vl = new SharpMap.Layers.VectorLayer(string.Format("{0} {1} {2} {3}", x, y, scale, rot), pr);

            vl.TargetSRID = 3857;

            var rps = new SharpMap.Rendering.Symbolizer.RasterPointSymbolizer();

            rps.Scale    = scale;
            rps.Rotation = rot;
            //rps.Symbol = GetRasterSymbol();
            rps.Symbol = GetRasterSymbol();
            vl.Style.PointSymbolizer = rps;

            return(vl);
        }
Esempio n. 19
0
        private void LoadParcels(List<PointD> pt, Color color, string labelname)
        {
            SharpMap.Map map = new SharpMap.Map();
            List<GeoAPI.Geometries.Coordinate> vertices = new List<GeoAPI.Geometries.Coordinate>();

            foreach (PointD i in pt)
            {
                GeoAPI.Geometries.Coordinate p = new GeoAPI.Geometries.Coordinate();
                p.X = i.X;
                p.Y = i.Y;
                vertices.Add(p);
            }
            GeoAPI.Geometries.Coordinate l = new GeoAPI.Geometries.Coordinate();
            l.X = pt[0].X;
            l.Y = pt[0].Y;
            vertices.Add(l);

            //Collection<GeoAPI.Geometries.IGeometry> geom = new Collection<GeoAPI.Geometries.IGeometry>();

            GeometryFactory gf = new NetTopologySuite.Geometries.GeometryFactory();
            GeoAPI.Geometries.ILinearRing shell = gf.CreateLinearRing(vertices.ToArray());

            GeoAPI.Geometries.IPolygon polygon = gf.CreatePolygon(shell, null);

            SharpMap.Data.Providers.GeometryProvider geomProvider= new SharpMap.Data.Providers.GeometryProvider(polygon);

            SharpMap.Layers.VectorLayer layerParcels = new SharpMap.Layers.VectorLayer("Parcels");

            SharpMap.Styles.VectorStyle style = new SharpMap.Styles.VectorStyle();

            style.Fill = new SolidBrush(Color.FromArgb(200,color));
            style.Outline = new Pen(new SolidBrush(color));

            layerParcels.Style = style;
            layerParcels.Style.EnableOutline = true;

            layerParcels.DataSource = geomProvider;
            layerParcels.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

            mapBox1.ActiveTool = SharpMap.Forms.MapBox.Tools.Pan;

            var fdt = new SharpMap.Data.FeatureDataTable();
            fdt.Columns.Add(new System.Data.DataColumn("id", typeof(uint)));
            fdt.Columns.Add(new System.Data.DataColumn("label", typeof(string)));
            var fdr = (SharpMap.Data.FeatureDataRow)fdt.NewRow();
            fdr.ItemArray = new object[] { 1, labelname };
            fdr.Geometry =  polygon;
            fdt.AddRow(fdr);

            var dataprovider = new SharpMap.Data.Providers.GeometryFeatureProvider(fdt);

            var ll = new SharpMap.Layers.LabelLayer("llayer");
            ll.DataSource = dataprovider;
            ll.LabelColumn = "label";
            ll.Style.Font = new Font("Eurostile Extended", 16,FontStyle.Bold);

            mapBox1.Map.Layers.Add(layerParcels);
            mapBox1.Map.Layers.Add(ll);

            mapBox1.Map.ZoomToExtents();
            mapBox1.Refresh();
        }
Esempio n. 20
0
        public void TestPathPointSymbolizer()
        {
            var fdt = CreatingData.CreatePointFeatureDataTableFromArrays(
                CreatingData.GetRandomOrdinates(50, -180, 180), CreatingData.GetRandomOrdinates(50, -90, 90), null);
            var geometryFeatureProvider = new SharpMap.Data.Providers.GeometryFeatureProvider(fdt);
            var layer = new SharpMap.Layers.VectorLayer("randompoints", geometryFeatureProvider);
            var pps   =
                SharpMap.Styles.Symbolizer.PathPointSymbolizer.CreateSquare(new System.Drawing.Pen(System.Drawing.Color.Red, 2),
                                                                            new System.Drawing.SolidBrush(
                                                                                System.Drawing.Color.DodgerBlue), 20);

            layer.Style.PointSymbolizer = pps;
            var map = new SharpMap.Map(new System.Drawing.Size(720, 360));

            map.Layers.Add(layer);
            map.ZoomToExtents();
            map.GetMap().Save("PathPointSymbolizer1.bmp");

            pps.Rotation = -30;
            map.GetMap().Save("PathPointSymbolizer2.bmp");

            pps.Rotation = 0f;
            pps.Offset   = new System.Drawing.PointF(4, 4);
            map.GetMap().Save("PathPointSymbolizer3.bmp");

            var gpTriangle1 = new System.Drawing.Drawing2D.GraphicsPath();

            gpTriangle1.AddPolygon(new [] { new System.Drawing.Point(0, 0), new System.Drawing.Point(5, 10), new System.Drawing.Point(10, 0), new System.Drawing.Point(0, 0), });
            var gpTriangle2 = new System.Drawing.Drawing2D.GraphicsPath();

            gpTriangle2.AddPolygon(new[] { new System.Drawing.Point(0, 0), new System.Drawing.Point(-5, -10), new System.Drawing.Point(-10, 0), new System.Drawing.Point(0, 0), });
            pps = new
                  SharpMap.Styles.Symbolizer.PathPointSymbolizer(new[]
            {
                new SharpMap.Styles.Symbolizer.PathPointSymbolizer.PathDefinition
                {
                    Path = gpTriangle1,
                    Line =
                        new System.Drawing.Pen(
                            System.Drawing.Color.Red, 2),
                    Fill =
                        new System.Drawing.SolidBrush(
                            System.Drawing.Color.DodgerBlue)
                },
                new SharpMap.Styles.Symbolizer.PathPointSymbolizer.PathDefinition
                {
                    Path = gpTriangle2,
                    Line =
                        new System.Drawing.Pen(
                            System.Drawing.Color.DodgerBlue, 2),
                    Fill =
                        new System.Drawing.SolidBrush(
                            System.Drawing.Color.Red)
                }
            })
            {
                Rotation = 45
            };

            layer.Style.PointSymbolizer = pps;
            map.GetMap().Save("PathPointSymbolizer4.bmp");
            pps.Rotation = 180;
            map.GetMap().Save("PathPointSymbolizer5.bmp");
        }
Esempio n. 21
0
        private void LoadParcels(List <PointD> pt, Color color, string labelname)
        {
            SharpMap.Map map = new SharpMap.Map();
            List <GeoAPI.Geometries.Coordinate> vertices = new List <GeoAPI.Geometries.Coordinate>();


            foreach (PointD i in pt)
            {
                GeoAPI.Geometries.Coordinate p = new GeoAPI.Geometries.Coordinate();
                p.X = i.X;
                p.Y = i.Y;
                vertices.Add(p);
            }
            GeoAPI.Geometries.Coordinate l = new GeoAPI.Geometries.Coordinate();
            l.X = pt[0].X;
            l.Y = pt[0].Y;
            vertices.Add(l);

            //Collection<GeoAPI.Geometries.IGeometry> geom = new Collection<GeoAPI.Geometries.IGeometry>();



            GeometryFactory gf = new NetTopologySuite.Geometries.GeometryFactory();

            GeoAPI.Geometries.ILinearRing shell = gf.CreateLinearRing(vertices.ToArray());

            GeoAPI.Geometries.IPolygon polygon = gf.CreatePolygon(shell, null);


            SharpMap.Data.Providers.GeometryProvider geomProvider = new SharpMap.Data.Providers.GeometryProvider(polygon);

            SharpMap.Layers.VectorLayer layerParcels = new SharpMap.Layers.VectorLayer("Parcels");

            SharpMap.Styles.VectorStyle style = new SharpMap.Styles.VectorStyle();



            style.Fill    = new SolidBrush(Color.FromArgb(200, color));
            style.Outline = new Pen(new SolidBrush(color));

            layerParcels.Style = style;
            layerParcels.Style.EnableOutline = true;


            layerParcels.DataSource    = geomProvider;
            layerParcels.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

            mapBox1.ActiveTool = SharpMap.Forms.MapBox.Tools.Pan;

            var fdt = new SharpMap.Data.FeatureDataTable();

            fdt.Columns.Add(new System.Data.DataColumn("id", typeof(uint)));
            fdt.Columns.Add(new System.Data.DataColumn("label", typeof(string)));
            var fdr = (SharpMap.Data.FeatureDataRow)fdt.NewRow();

            fdr.ItemArray = new object[] { 1, labelname };
            fdr.Geometry  = polygon;
            fdt.AddRow(fdr);

            var dataprovider = new SharpMap.Data.Providers.GeometryFeatureProvider(fdt);

            var ll = new SharpMap.Layers.LabelLayer("llayer");

            ll.DataSource  = dataprovider;
            ll.LabelColumn = "label";
            ll.Style.Font  = new Font("Eurostile Extended", 16, FontStyle.Bold);



            mapBox1.Map.Layers.Add(layerParcels);
            mapBox1.Map.Layers.Add(ll);



            mapBox1.Map.ZoomToExtents();
            mapBox1.Refresh();
        }
        public void TestRasterPointSymbolizer()
        {
            var fdt = TestData.CreatingData.CreatePointFeatureDataTableFromArrays(
                TestData.CreatingData.GetRandomOrdinates(50, -180, 180), TestData.CreatingData.GetRandomOrdinates(50, -90, 90), null);
            var geometryFeatureProvider = new SharpMap.Data.Providers.GeometryFeatureProvider(fdt);
            var layer = new SharpMap.Layers.VectorLayer("randompoints", geometryFeatureProvider);
            var rps =
                new SharpMap.Rendering.Symbolizer.RasterPointSymbolizer {Symbol = Properties.Resources.Women};

            layer.Style.PointSymbolizer = rps;
            var map = new SharpMap.Map(new System.Drawing.Size(720, 360));
            map.Layers.Add(layer);
            map.ZoomToExtents();
            map.GetMap().Save("RasterPointSymbolizer1.bmp");

            rps.Rotation = 45;
            map.GetMap().Save("RasterPointSymbolizer2.bmp");
            rps.Rotation = 0;

            var cps = new SharpMap.Rendering.Symbolizer.CharacterPointSymbolizer
                          {
                              Halo = 1,
                              HaloBrush = new System.Drawing.SolidBrush(System.Drawing.Color.WhiteSmoke),
                              Foreground = new System.Drawing.SolidBrush(System.Drawing.Color.Black),
                              Font = new System.Drawing.Font("Arial", 12),
                              Text = "Anne",
                              Offset = new System.Drawing.PointF(0, rps.Size.Height*0.5f)

            };

            var lps = new SharpMap.Rendering.Symbolizer.ListPointSymbolizer { rps, cps };

            layer.Style.PointSymbolizer = lps;
            map.Layers.Add(layer);
            map.ZoomToExtents();
            map.GetMap().Save("RasterPointSymbolizer3.bmp");
        }
Esempio n. 23
0
        public void DoTest()
        {
            SharpMap.Data.Providers.ShapeFile sf = new SharpMap.Data.Providers.ShapeFile("cities.shp");
            SharpMap.Data.FeatureDataSet fds = new SharpMap.Data.FeatureDataSet();
            sf.ExecuteIntersectionQuery(sf.GetExtents(), fds);
            SharpMap.Data.Providers.GeometryFeatureProvider gfp =
                new SharpMap.Data.Providers.GeometryFeatureProvider(fds.Tables[0]);

            System.Data.DataTable dt = new System.Data.DataTable("external");
            dt.Columns.Add("city", typeof (string));
            dt.Columns.Add("males", typeof (int));
            dt.Columns.Add("females", typeof (int));
        }
Esempio n. 24
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (_cmbLayer1.SelectedIndex >= 0 && _cmbLayer2.SelectedIndex >= 0 && _cmbOperation.SelectedIndex >= 0)
            {
                //obrada forme
                if (_cmbOperation.SelectedIndex == 0) //intersect
                {
                    SharpMap.Data.FeatureDataSet ds = new SharpMap.Data.FeatureDataSet();
                    SharpMap.Layers.VectorLayer layer1 = (SharpMap.Layers.VectorLayer)_map.GetLayerByName(_cmbLayer1.SelectedItem.ToString());
                    SharpMap.Layers.VectorLayer layer2 = (SharpMap.Layers.VectorLayer)_map.GetLayerByName(_cmbLayer2.SelectedItem.ToString());

                    SharpMap.Data.Providers.NtsProvider nts = new SharpMap.Data.Providers.NtsProvider(layer1.DataSource);
                    SharpMap.Data.Providers.NtsProvider nts2 = new SharpMap.Data.Providers.NtsProvider(layer2.DataSource);

                    SharpMap.Geometries.GeometryCollection coll = new SharpMap.Geometries.GeometryCollection();
                    ds.Tables.Clear();

                    SharpMap.Data.FeatureDataSet set = new SharpMap.Data.FeatureDataSet();
                    nts.GetFeaturesInView(nts.GetExtents(), set);

                    SharpMap.Data.FeatureDataSet res = new SharpMap.Data.FeatureDataSet();
                    res.Tables.Add(set.Tables[0].Clone());
                    res.Tables[0].Rows.Clear();

                    ds.Tables.Clear();
                    foreach (SharpMap.Data.FeatureDataRow row in set.Tables[0].Rows)
                    {
                        nts2.ExecuteIntersectionQuery(row.Geometry, ds);

                        if (ds.Tables[0].Rows.Count > 0)
                        {
                            SharpMap.Data.FeatureDataRow red = res.Tables[0].NewRow();
                            red.Geometry = row.Geometry;
                            red.ItemArray = row.ItemArray;
                            res.Tables[0].AddRow(red);
                        }
                        ds.Tables.Clear();
                    }

                    LayerInfo l = new LayerInfo(res.Tables[0]);
                    l.Show();

                    SharpMap.Data.Providers.GeometryFeatureProvider prov = new SharpMap.Data.Providers.GeometryFeatureProvider(res.Tables[0]);

                    SharpMap.Layers.VectorLayer lay = new SharpMap.Layers.VectorLayer("selected layer", prov);
                    lay.Style.Fill = Brushes.Yellow;
                    SharpMap.Layers.ILayer layerToRemove = _map.GetLayerByName("selected layer");
                    if (layerToRemove != null)
                    {
                        _map.Layers.Remove(layerToRemove);
                    }
                    _map.Layers.Add(lay);
                    this._parent.RefreshMap();
                }
                else if (_cmbOperation.SelectedIndex == 1)//within
                {
                    SharpMap.Data.FeatureDataSet ds = new SharpMap.Data.FeatureDataSet();
                    SharpMap.Layers.VectorLayer layer1 = (SharpMap.Layers.VectorLayer)_map.GetLayerByName(_cmbLayer1.SelectedItem.ToString());
                    SharpMap.Layers.VectorLayer layer2 = (SharpMap.Layers.VectorLayer)_map.GetLayerByName(_cmbLayer2.SelectedItem.ToString());

                    SharpMap.Data.Providers.NtsProvider nts = new SharpMap.Data.Providers.NtsProvider(layer1.DataSource);
                    SharpMap.Data.Providers.NtsProvider nts2 = new SharpMap.Data.Providers.NtsProvider(layer2.DataSource, CreateBuffers);

                    SharpMap.Geometries.GeometryCollection coll = new SharpMap.Geometries.GeometryCollection();
                    ds.Tables.Clear();

                    SharpMap.Data.FeatureDataSet set = new SharpMap.Data.FeatureDataSet();
                    nts.GetFeaturesInView(nts.GetExtents(), set);

                    SharpMap.Data.FeatureDataSet res = new SharpMap.Data.FeatureDataSet();
                    res.Tables.Add(set.Tables[0].Clone());
                    res.Tables[0].Rows.Clear();

                    ds.Tables.Clear();
                    foreach (SharpMap.Data.FeatureDataRow row in set.Tables[0].Rows)
                    {
                        nts2.ExecuteIntersectionQuery(row.Geometry, ds);

                        if (ds.Tables[0].Rows.Count > 0)
                        {
                            SharpMap.Data.FeatureDataRow red = res.Tables[0].NewRow();
                            red.Geometry = row.Geometry;
                            red.ItemArray = row.ItemArray;
                            res.Tables[0].AddRow(red);
                        }
                        ds.Tables.Clear();
                    }

                    LayerInfo l = new LayerInfo(res.Tables[0]);
                    l.Show();

                    SharpMap.Data.Providers.GeometryFeatureProvider prov = new SharpMap.Data.Providers.GeometryFeatureProvider(res.Tables[0]);

                    SharpMap.Layers.VectorLayer lay = new SharpMap.Layers.VectorLayer("selected layer", prov);
                    lay.Style.Fill = Brushes.Yellow;
                    SharpMap.Layers.ILayer layerToRemove = _map.GetLayerByName("selected layer");
                    if (layerToRemove != null)
                    {
                        _map.Layers.Remove(layerToRemove);
                    }
                    _map.Layers.Add(lay);
                    this._parent.RefreshMap();
                }
                else//van
                {
                    SharpMap.Data.FeatureDataSet ds = new SharpMap.Data.FeatureDataSet();
                    SharpMap.Layers.VectorLayer layer1 = (SharpMap.Layers.VectorLayer)_map.GetLayerByName(_cmbLayer1.SelectedItem.ToString());
                    SharpMap.Layers.VectorLayer layer2 = (SharpMap.Layers.VectorLayer)_map.GetLayerByName(_cmbLayer2.SelectedItem.ToString());

                    SharpMap.Data.Providers.NtsProvider nts = new SharpMap.Data.Providers.NtsProvider(layer1.DataSource);
                    SharpMap.Data.Providers.NtsProvider nts2 = new SharpMap.Data.Providers.NtsProvider(layer2.DataSource, CreateBuffers);

                    SharpMap.Geometries.GeometryCollection coll = new SharpMap.Geometries.GeometryCollection();
                    ds.Tables.Clear();

                    SharpMap.Data.FeatureDataSet set = new SharpMap.Data.FeatureDataSet();
                    nts.GetFeaturesInView(nts.GetExtents(),set);

                    SharpMap.Data.FeatureDataSet res = new SharpMap.Data.FeatureDataSet();
                    res.Tables.Add(set.Tables[0].Clone());
                    res.Tables[0].Rows.Clear();

                    ds.Tables.Clear();
                    foreach (SharpMap.Data.FeatureDataRow row in set.Tables[0].Rows)
                    {
                        nts2.ExecuteIntersectionQuery(row.Geometry, ds);

                        if (ds.Tables[0].Rows.Count <= 0)
                        {
                            SharpMap.Data.FeatureDataRow red = res.Tables[0].NewRow();
                            red.Geometry = row.Geometry;
                            red.ItemArray = row.ItemArray;
                            res.Tables[0].AddRow(red);
                        }
                        ds.Tables.Clear();
                    }

                    LayerInfo l = new LayerInfo(res.Tables[0]);
                    l.Show();

                    SharpMap.Data.Providers.GeometryFeatureProvider prov = new SharpMap.Data.Providers.GeometryFeatureProvider(res.Tables[0]);

                    SharpMap.Layers.VectorLayer lay = new SharpMap.Layers.VectorLayer("selected layer", prov);
                    lay.Style.Fill = Brushes.Yellow;
                    SharpMap.Layers.ILayer layerToRemove = _map.GetLayerByName("selected layer");
                    if (layerToRemove != null)
                    {
                        _map.Layers.Remove(layerToRemove);
                    }
                    _map.Layers.Add(lay);
                    this._parent.RefreshMap();
                }
            }
        }
        public static SharpMap.Map InitializeMap(float angle)
        {
            var dataSource = new SharpMap.Data.Providers.ShapeFile(
                string.Format("{0}/roads.shp", ShapefileSample.PathOsm), true);
            
            var fds = new SharpMap.Data.FeatureDataSet();
            dataSource.Open();
            dataSource.ExecuteIntersectionQuery(dataSource.GetExtents(), fds);
            dataSource.Close();

            var gfp = new SharpMap.Data.Providers.GeometryFeatureProvider(fds.Tables[0]);
            var vl = new SharpMap.Layers.VectorLayer("roads", gfp)
                         {
                             CoordinateTransformation = LayerTools.Dhdn2ToWgs84
                         };
            var ll = new SharpMap.Layers.LabelLayer("labels")
                         {
                             DataSource = gfp,
                             CoordinateTransformation = LayerTools.Dhdn2ToWgs84,
                             LabelColumn = "name",
                             MultipartGeometryBehaviour =
                                 SharpMap.Layers.LabelLayer.MultipartGeometryBehaviourEnum.Largest,
                         };
            ll.Style.Halo = new System.Drawing.Pen(System.Drawing.Color.Red);
            //ll.Style.IgnoreLength = true;

            var map = new SharpMap.Map();
            map.Layers.Add(vl);
            map.Layers.Add(ll);

            map.Layers.Add(vl);
            map.ZoomToExtents();
            return map;
        }