Example #1
0
        public void TestSymbolSelectionTheming()
        {
            //Create a map
            SharpMap.Map map = new SharpMap.Map(new System.Drawing.Size(720, 360));

            //Create some random sample data
            SharpMap.Data.FeatureDataTable fdt =
                cd.CreatePointFeatureDataTableFromArrays(cd.GetRandomOrdinates(80, -180, 180),
                                                         cd.GetRandomOrdinates(80, -90, 90), null);

            //Add rotation column and fill with random rotation values
            fdt.Columns.Add("Symbol", typeof(System.Byte[]));
            foreach (SharpMap.Data.FeatureDataRow row in fdt.Rows)
                row["Symbol"] = RandomSymbol((int)System.Math.Floor(cd.RandomNumberGenerator.NextDouble() * 360d));

            //Create layer and datasource
            SharpMap.Layers.VectorLayer vl = new SharpMap.Layers.VectorLayer("Points", new SharpMap.Data.Providers.GeometryFeatureProvider(fdt));

            //Create default style
            SharpMap.Styles.VectorStyle defaultStyle = new SharpMap.Styles.VectorStyle();
            defaultStyle.Symbol = new System.Drawing.Bitmap(@"..\..\..\DemoWinForm\Resources\flag.png");
            defaultStyle.SymbolScale = 0.5f;

            //Create theming class and apply to layer
            SymbolFromFeatureDataRowTheming srt = new SymbolFromFeatureDataRowTheming("Symbol", defaultStyle);
            vl.Theme = new SharpMap.Rendering.Thematics.CustomTheme(srt.GetRotatedSymol);

            map.Layers.Add(vl);
            map.ZoomToExtents();
            System.Drawing.Image mapImage = map.GetMap();
            mapImage.Save("SymbolFromFDR.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");
        }
        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");
        }
Example #4
0
        public MainWindow()
            : base(Gtk.WindowType.Toplevel)
        {
            try
            {
                GeoAPI.GeometryServiceProvider.Instance = new NtsGeometryServices();

                Build();

                Size mapSize = new Size(800, 500);
                myMap = new SharpMap.Map(mapSize);

                SharpMap.Styles.VectorStyle style = new SharpMap.Styles.VectorStyle();
                style.Outline = new Pen(Color.Green, 1);
                style.EnableOutline = true;
                SharpMap.Layers.VectorLayer layWorld = new SharpMap.Layers.VectorLayer("States");
                layWorld.DataSource =
                    new SharpMap.Data.Providers.ShapeFile(
                        @"data" + System.IO.Path.DirectorySeparatorChar + @"states.shp", true);
                layWorld.Style = style;

                myMap.Layers.Add(layWorld);
                myMap.MaximumZoom = 360;
                myMap.BackColor = Color.LightBlue;
                myMap.Center = new GeoAPI.Geometries.Coordinate(0, 0);
                myMap.Zoom = 360;

                Bitmap img = (Bitmap)myMap.GetMap();
                image3.Pixbuf = ImageToPixbuf(img);
            }
            catch (Exception ex)
            {
                label1.Text = ex.Message;
            }
        }
Example #5
0
        public static void Example2()
        {
            var map = new SharpMap.Map(new Size(1280, 1084));

            SharpMap.Data.Providers.IProvider provider =
                new SharpMap.Data.Providers.ShapeFile(
                    @"C:\temp\Data\niedersachsen.shp\railways.shp");

            var style = new SharpMap.Styles.VectorStyle();
            style.Line.Brush = Brushes.White;
            style.Line.DashPattern = new float[] { 4f, 4f };
            style.Line.Width = 4;
            style.EnableOutline = true;
            style.Outline.Brush = Brushes.Black;
            style.Outline.Width = 6;

            var vl = new SharpMap.Layers.VectorLayer("Railways", provider)
                         {Style = style};


            map.Layers.Add(vl);

            var env = vl.Envelope;
            env.ExpandBy(-0.45f *env.Width, -0.45 * env.Height);
            
            map.ZoomToBox(env);

            var mapImage = map.GetMap();
            mapImage.Save("Example2.png",
                System.Drawing.Imaging.ImageFormat.Png);
        }
        public void render2d(Project project, PictureBox picBox)
        {

            SharpMap.Map myMap = new SharpMap.Map();

            foreach (BuildLayer layer in project.getLayers())
            {
                Source source = layer.getSource();

                BoundingBox envelope = new BoundingBox(-1000.0, -1000.0, 1000.0, 1000.0);//TODO
                FeatureDataSet ds = new FeatureDataSet();
                source.DataSource.Open();
                source.DataSource.ExecuteIntersectionQuery(envelope, ds);
                source.DataSource.Close();

                FeatureDataTable features = (FeatureDataTable)ds.Tables[0];

                string label = "Trace test:\n";

                foreach (FeatureDataRow row in features)
                {
                    foreach (Object item in row.ItemArray)
                        label += " - " + item;
                    label += "\n";
                }

                setLabel(label);

                //Show map

                //Filters
                FilterGraph graph = project.getFilterGraph(source.getName());
                if (graph != null)
                {
                    foreach (FeatureFilter filter in graph.getFilters())
                    {
                        //aplicar filtro segun el tipo
                        Mogre.DefaultSceneManagerFactory dsmf = new DefaultSceneManagerFactory();
                        Mogre.SceneManager sm = dsmf.CreateInstance("scenemanager");
                        FilterEnv env = new FilterEnv(sm, "env");
                        foreach (MogreGis.Resource resource in project.getResources())
                        {
                            env.getSession().Resources.addResource(resource);
                        }
                        FeatureList list = Feature.DataTableToList(features);
                        filter.process(list, env);
                        //falta devolver la lista y procesarla ***************************************
                    }
                }

                SharpMap.Layers.VectorLayer myLayer = new SharpMap.Layers.VectorLayer(layer.getName());
                myLayer.DataSource = source.DataSource;
                myMap.Layers.Add(myLayer);
            }

            myMap.Size = new Size(picBox.Width, picBox.Height);
            myMap.ZoomToExtents();
            picBox.Image = myMap.GetMap();
            this.map = myMap;
        }
        public void TestPathPointSymbolizer()
        {
            var fdt = CreatingData.CreatePointFeatureDataTableFromArrays(
                CreatingData.GetRandomOrdinates(50, -180, 180), CreatingData.GetRandomOrdinates(50, -90, 90), null);
            var geometryFeatureProvider = new SharpMap.Data.Providers.FeatureProvider(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);
            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.Rendering.Symbolizer.PathPointSymbolizer(new[]
                                                        {
                                                            new SharpMap.Rendering.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.Rendering.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");

        }
            protected override void OnRenderInternal(SharpMap.Map map, GeoAPI.Geometries.IPolygon polygon, System.Drawing.Graphics g)
            {
                var pt = polygon.Centroid;

                g.RenderingOrigin =
                    System.Drawing.Point.Truncate(SharpMap.Utilities.Transform.WorldtoMap(pt.Coordinate, map));
                base.OnRenderInternal(map, polygon, g);
            }
Example #9
0
        private static SharpMap.Map InitializeGeoTiff(float angle)
        {
            try
            {
                var map = new SharpMap.Map();
                map.BackColor = System.Drawing.Color.White;
                const string relativePath = "GeoData/GeoTiff/";

                SharpMap.Layers.GdalRasterLayer layer;

                if (!System.IO.File.Exists(relativePath + "format01-image_a.tif"))
                {
                    throw new System.Exception("Make sure the data is in the relative directory: " + relativePath);
                }

                layer = new SharpMap.Layers.GdalRasterLayer("GeoTiffA", relativePath + "format01-image_a.tif");
                map.Layers.Add(layer);
                layer = new SharpMap.Layers.GdalRasterLayer("GeoTiffB", relativePath + "format01-image_b.tif");
                map.Layers.Add(layer);
                layer = new SharpMap.Layers.GdalRasterLayer("GeoTiffC", relativePath + "format01-image_c.tif");
                map.Layers.Add(layer);
                layer = new SharpMap.Layers.GdalRasterLayer("GeoTiffD", relativePath + "format01-image_d.tif");
                map.Layers.Add(layer);

                SharpMap.Layers.VectorLayer shapeLayer;

                if (!System.IO.File.Exists(relativePath + "outline.shp"))
                {
                    throw new System.Exception("Make sure the data is in the relative directory: " + relativePath);
                }

                shapeLayer                     = new SharpMap.Layers.VectorLayer("outline", new SharpMap.Data.Providers.ShapeFile(relativePath + "outline.shp"));
                shapeLayer.Style.Fill          = System.Drawing.Brushes.Transparent;
                shapeLayer.Style.Outline       = System.Drawing.Pens.Black;
                shapeLayer.Style.EnableOutline = true;
                shapeLayer.Style.Enabled       = true;
                map.Layers.Add(shapeLayer);

                map.ZoomToExtents();

                //System.Drawing.Drawing2D.Matrix mat = new System.Drawing.Drawing2D.Matrix();
                //mat.RotateAt(angle, map.WorldToImage(map.Center));
                //map.MapTransform = mat;

                return(map);
            }
            catch (System.TypeInitializationException ex)
            {
                if (ex.Message == "The type initializer for 'OSGeo.GDAL.GdalPINVOKE' threw an exception.")
                {
                    throw new System.Exception(
                              string.Format(
                                  "The application threw a PINVOKE exception. You probably need to copy the unmanaged dll's to your bin directory. They are a part of fwtools {0}. You can download it from: http://home.gdal.org/fwtools/",
                                  SharpMap.Layers.GdalRasterLayer.FWToolsVersion));
                }
                throw;
            }
        }
Example #10
0
        public void TestWarpedLineSymbolizer()
        {
            var p = new SharpMap.Data.Providers.ShapeFile(@"d:\\daten\GeoFabrik\\Aurich\\roads.shp", false);

            var l   = new SharpMap.Layers.VectorLayer("roads", p);
            var cls = new SharpMap.Rendering.Symbolizer.CachedLineSymbolizer();

            cls.LineSymbolizeHandlers.Add(new SharpMap.Rendering.Symbolizer.PlainLineSymbolizeHandler {
                Line = new System.Drawing.Pen(System.Drawing.Color.Gold, 2)
            });
            cls.LineSymbolizeHandlers.Add(new SharpMap.Rendering.Symbolizer.WarpedLineSymbolizeHander {
                Pattern = SharpMap.Rendering.Symbolizer.WarpedLineSymbolizer.GetGreaterSeries(3, 3), Line = new System.Drawing.Pen(System.Drawing.Color.Firebrick, 1)
            });
            l.Style.LineSymbolizer = cls;

            var m = new SharpMap.Map(new System.Drawing.Size(720, 540))
            {
                BackColor = System.Drawing.Color.Cornsilk
            };

            m.Layers.Add(l);

            m.ZoomToExtents();

            var sw = new System.Diagnostics.Stopwatch();

            sw.Start();
            var bmp = m.GetMap();

            sw.Stop();
            System.Console.WriteLine(string.Format("Rendering new method: {0}ms", sw.ElapsedMilliseconds));
            bmp.Save("AurichRoads1.bmp");

            cls.LineSymbolizeHandlers[1] = new SharpMap.Rendering.Symbolizer.WarpedLineSymbolizeHander
            {
                Pattern = SharpMap.Rendering.Symbolizer.WarpedLineSymbolizer.GetTriangleSeries(4, 7),
                Line    = new System.Drawing.Pen(System.Drawing.Color.Firebrick, 1),
                Fill    = new System.Drawing.SolidBrush(System.Drawing.Color.Firebrick)
            };
            sw.Start();
            bmp = m.GetMap();
            sw.Stop();
            System.Console.WriteLine(string.Format("Rendering new method: {0}ms", sw.ElapsedMilliseconds));
            bmp.Save("AurichRoads2.bmp");

            //cls.LineSymbolizeHandlers[0] = cls.LineSymbolizeHandlers[1];
            cls.LineSymbolizeHandlers[1] = new SharpMap.Rendering.Symbolizer.WarpedLineSymbolizeHander
            {
                Pattern = SharpMap.Rendering.Symbolizer.WarpedLineSymbolizer.GetZigZag(4, 4),
                Line    = new System.Drawing.Pen(System.Drawing.Color.Firebrick, 1),
                //Fill = new System.Drawing.SolidBrush(System.Drawing.Color.Firebrick)
            };
            sw.Start();
            bmp = m.GetMap();
            sw.Stop();
            System.Console.WriteLine(string.Format("Rendering new method: {0}ms", sw.ElapsedMilliseconds));
            bmp.Save("AurichRoads3.bmp");
        }
Example #11
0
        private static XmlNode GenerateCapabilityNode(SharpMap.Map map, XmlDocument capabilities)
        {
            string OnlineResource = "";
            string port           = System.Web.HttpContext.Current.Request.Url.IsDefaultPort ? "" : ":" + System.Web.HttpContext.Current.Request.Url.Port.ToString();

            OnlineResource = System.Web.HttpContext.Current.Server.HtmlEncode("http://" + System.Web.HttpContext.Current.Request.Url.Host + port + System.Web.HttpContext.Current.Request.Url.AbsolutePath);
            XmlNode CapabilityNode      = capabilities.CreateNode(XmlNodeType.Element, "Capability", wmsNamespaceURI);
            XmlNode RequestNode         = capabilities.CreateNode(XmlNodeType.Element, "Request", wmsNamespaceURI);
            XmlNode GetCapabilitiesNode = capabilities.CreateNode(XmlNodeType.Element, "GetCapabilities", wmsNamespaceURI);

            //Set format of supported capabilities mime types (only text/xml supported)
            GetCapabilitiesNode.AppendChild(CreateElement("Format", "text/xml", capabilities, false, wmsNamespaceURI));
            GetCapabilitiesNode.AppendChild(GenerateDCPTypeNode(capabilities, OnlineResource));
            RequestNode.AppendChild(GetCapabilitiesNode);

            XmlNode GetMapNode = capabilities.CreateNode(XmlNodeType.Element, "GetMap", wmsNamespaceURI);

            //Add supported fileformats. Return the ones that GDI+ supports
            foreach (System.Drawing.Imaging.ImageCodecInfo encoder in System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders())
            {
                GetMapNode.AppendChild(CreateElement("Format", encoder.MimeType, capabilities, false, wmsNamespaceURI));
            }

            GetMapNode.AppendChild(GenerateDCPTypeNode(capabilities, OnlineResource));

            RequestNode.AppendChild(GetMapNode);
            CapabilityNode.AppendChild(RequestNode);
            XmlElement exceptionNode = capabilities.CreateElement("Exception", wmsNamespaceURI);

            exceptionNode.AppendChild(CreateElement("Format", "text/xml", capabilities, false, wmsNamespaceURI));
            CapabilityNode.AppendChild(exceptionNode);             //Add supported exception types

            //Build layerlist

            XmlNode LayerRootNode = capabilities.CreateNode(XmlNodeType.Element, "Layer", wmsNamespaceURI);

            LayerRootNode.AppendChild(CreateElement("Title", "SharpMap", capabilities, false, wmsNamespaceURI));
            LayerRootNode.AppendChild(CreateElement("CRS", "EPSG:" + map.Layers[0].SRID.ToString(), capabilities, false, wmsNamespaceURI));             //TODO
            LayerRootNode.AppendChild(GenerateBoundingBoxElement(map.GetExtents(), map.Layers[0].SRID, capabilities));
            //This should be changed when Transformation library is complete
            XmlElement geoBox = capabilities.CreateElement("EX_GeographicBoundingBox", wmsNamespaceURI);

            geoBox.Attributes.Append(CreateAttribute("minx", "-180", capabilities));
            geoBox.Attributes.Append(CreateAttribute("miny", "-90", capabilities));
            geoBox.Attributes.Append(CreateAttribute("maxx", "180", capabilities));
            geoBox.Attributes.Append(CreateAttribute("maxy", "90", capabilities));
            LayerRootNode.AppendChild(geoBox);

            foreach (SharpMap.Layers.ILayer layer in map.Layers)
            {
                LayerRootNode.AppendChild(GetWmsLayerNode(layer, capabilities));
            }

            CapabilityNode.AppendChild(LayerRootNode);

            return(CapabilityNode);
        }
Example #12
0
        public void ImageToWorld_DefaultMap_ReturnValue()
        {
            SharpMap.Map map = new SharpMap.Map(new System.Drawing.Size(500, 200));
            map.Center = GeometryFactory.CreateCoordinate(23, 34);
            map.Zoom   = 1000;
            ICoordinate p = map.ImageToWorld(new System.Drawing.PointF(242.5f, 92));

            Assert.AreEqual(GeometryFactory.CreateCoordinate(8, 50), p);
        }
Example #13
0
 public static void init(SharpMap.Map _sharpMap, string query)
 {
     initLayers(_sharpMap, serviceTypes, serviceLayersList, serviceTypeEnabled, query);
     initLayers(_sharpMap, utilityTypes, utilityLayersList, utilityTypeEnabled, query);
     initLayers(_sharpMap, innTypes, innLayersList, innTypeEnabled, query);
     initLayers(_sharpMap, transportationTypes, transportationLayersList, transportationTypeEnabled, query);
     initLayers(_sharpMap, culturalTypes, culturalLayersList, culturalTypeEnabled, query);
     initLayers(_sharpMap, touristActivityTypes, touristActivityLayersList, touristActivityTypeEnabled, query);
 }
Example #14
0
        public void GetExtents_ValidDatasource()
        {
            SharpMap.Map map = new SharpMap.Map(new System.Drawing.Size(400, 200));
            SharpMap.Layers.VectorLayer vLayer = new SharpMap.Layers.VectorLayer("Geom layer", CreateDatasource());
            map.Layers.Add(vLayer);
            IEnvelope box = map.GetExtents();

            Assert.AreEqual(GeometryFactory.CreateEnvelope(0, 0, 50, 346.3493254), box);
        }
Example #15
0
 /// <summary>
 /// Creates a new SharpMapLayer
 /// </summary>
 /// <param name="base64EncMap">The Base64 encoded map object</param>
 public SharpMapLayer(string base64EncMap)
 {
     using (var m = new MemoryStream(Convert.FromBase64String(base64EncMap)))
     {
         var bf = GetSharpMapFormatter();
         _map = (SharpMap.Map)bf.Deserialize(m);
         Wire();
     }
 }
Example #16
0
        public static void EnsureVisible(SharpMap.Map map, SharpMap.Geometries.Point pt)
        {
            const double ensureVisibleRatio = 0.1d;

            //Get current map envelope
            var bb = map.Envelope;

            System.Console.WriteLine(string.Format("Map envelope: {0}", bb));

            //Set valid envelope
            var evbb = bb.Grow(-ensureVisibleRatio * bb.Width, -ensureVisibleRatio * bb.Height);

            System.Console.WriteLine(string.Format("Valid envelope: {0}", evbb));

            //Test if Point is in valid envelope
            if (evbb.Contains(pt))
            {
                return;
            }

            //It is not
            System.Console.WriteLine(string.Format("Valid envelope does not contain {0}", pt));

            //LineString from Map.Center -> to Point
            var ls = new SharpMap.Geometries.LineString(new[] { evbb.GetCentroid(), pt });

            System.Console.WriteLine(string.Format("LineString Map.Center -> Point: {0}", ls));

            //Setup Linestring from BoundingBox
            var gf      = new NetTopologySuite.Geometries.GeometryFactory();
            var evbbpts = new System.Collections.Generic.List <SharpMap.Geometries.Point>(
                new[] { evbb.TopLeft, evbb.TopRight, evbb.BottomRight, evbb.BottomLeft, evbb.TopLeft });
            var evbblinearring = new SharpMap.Geometries.LineString(evbbpts);

            System.Console.WriteLine(string.Format("Linestring of valid envelope: {0}", evbblinearring));

            // convert geometries to NTS
            var ntsevbb = (NetTopologySuite.Geometries.LineString)
                          SharpMap.Converters.NTS.GeometryConverter.ToNTSGeometry(evbblinearring, gf);
            var ntsls = (NetTopologySuite.Geometries.LineString)
                        SharpMap.Converters.NTS.GeometryConverter.ToNTSGeometry(ls, gf);

            // Get intersection point
            var intGeo = ntsevbb.Intersection(ntsls);
            var intPt  = (NetTopologySuite.Geometries.Point)intGeo;

            System.Console.WriteLine(string.Format("Intersection point is: {0}", intPt));

            //Compute offset
            var dx = pt.X - intPt.X;
            var dy = pt.Y - intPt.Y;

            System.Console.WriteLine(string.Format("Map.Center needs to be shifted by: [{0}, {1}]", dx, dy));

            //Set new center Center
            map.Center = new SharpMap.Geometries.Point(map.Center.X + dx, map.Center.Y + dy);
        }
Example #17
0
        public override void Begin(System.Drawing.Graphics g, SharpMap.Map map, int aproximateNumberOfGeometries)
        {
            base.Begin(g, map, aproximateNumberOfGeometries);

            //Adjust Arrow cap
            var size = (float)(ArrowLength / 5 / map.PixelWidth);

            ArrowPen.CustomEndCap = new System.Drawing.Drawing2D.AdjustableArrowCap(size, size);
        }
Example #18
0
        private static SharpMap.Map InitializeMapBing(BruTile.Web.BingMapType mt)
        {
            var map = new SharpMap.Map();

            var tileLayer = new SharpMap.Layers.TileLayer(new BruTile.Web.BingTileSource(BruTile.Web.BingRequest.UrlBingStaging, "", mt), "TileLayer - Bing " + mt);

            map.BackgroundLayer.Add(tileLayer);
            map.ZoomToBox(tileLayer.Envelope);
            return(map);
        }
Example #19
0
        /// <summary>
        /// Method to render the arrow
        /// </summary>
        /// <param name="map">The map</param>
        /// <param name="graphics">The graphics object</param>
        /// <param name="arrow">The arrow</param>
        private void RenderArrow(SharpMap.Map map, System.Drawing.Graphics graphics, GeoAPI.Geometries.ILineString arrow)
        {
            var pts = new System.Drawing.PointF[arrow.Coordinates.Length];

            for (var i = 0; i < pts.Length; i++)
            {
                pts[i] = map.WorldToImage(arrow.GetCoordinateN(i));
            }
            graphics.DrawLines(ArrowPen, pts);
        }
Example #20
0
        private static SharpMap.Map InitializeMapOsm()
        {
            var map = new SharpMap.Map();

            var tileLayer = new SharpMap.Layers.TileAsyncLayer(new BruTile.Web.OsmTileSource(), "TileLayer - OSM");
            map.BackgroundLayer.Add(tileLayer);
            map.ZoomToBox(tileLayer.Envelope);
            
            return map;
        }
Example #21
0
        /// <summary>
        /// Transforms from world coordinate system (WCS) to image coordinates
        /// NOTE: This method DOES NOT take the MapTransform property into account (use SharpMap.Map.MapToWorld instead)
        /// </summary>
        /// <param name="p">Point in WCS</param>
        /// <param name="map">Map reference</param>
        /// <returns>Point in image coordinates</returns>
        public static System.Drawing.PointF WorldtoMap(ICoordinate p, SharpMap.Map map)
        {
            //if (map.MapTransform != null && !map.MapTransform.IsIdentity)
            //	map.MapTransform.TransformPoints(new System.Drawing.PointF[] { p });

            System.Drawing.PointF result = new System.Drawing.Point();
            result.X = (float)((p.X - map.WorldLeft) / map.PixelWidth);
            result.Y = (float)((map.WorldTop - p.Y) / map.PixelHeight);
            return(result);
        }
        private void button3_Click(object sender, EventArgs e)
        {
            var selectedCountryISO3 = (string)comboBox1.SelectedValue;

            if (!String.IsNullOrEmpty(selectedCountryISO3))
            {
                renderedMap = renderMap(selectedCountryISO3);
                updatePicture(renderedMap);
            }
        }
        private void OnInvokeSharpMapLayerDialog(object sender, EventArgs e)
        {
            var map = new SharpMap.Map();
            var ts = new BruTile.Web.OsmTileSource();
            var tl = new SharpMap.Layers.TileLayer(ts, "OSM");
            map.Layers.Add(tl);

            var sml = new SharpMapLayer(map);
            App.Map.Layers.Add(sml);
        }
Example #24
0
        public void TestPlainPolygonSymbolizer(string filePath)
        {
            filePath = filePath.Replace("\\", new string(System.IO.Path.DirectorySeparatorChar, 1));
            if (!System.IO.File.Exists(filePath))
            {
                throw new NUnit.Framework.IgnoreException($"'{filePath}' not found");
            }

            var provider = new SharpMap.Data.Providers.ShapeFile(filePath, true);
            var l        = new SharpMap.Layers.Symbolizer.PolygonalVectorLayer("Countries", provider);

            l.Symbolizer = new ModifiedBasicPolygonSymbolizer
            {
                Fill = new System.Drawing.Drawing2D.HatchBrush(
                    System.Drawing.Drawing2D.HatchStyle.WideDownwardDiagonal,
                    System.Drawing.Color.Red /*,
                                              * System.Drawing.Color.LightPink*/),
                UseClipping = false,
                //Outline = System.Drawing.Pens.AliceBlue
            };

            var m = new SharpMap.Map(new System.Drawing.Size(1440, 1080))
            {
                BackColor = System.Drawing.Color.Cornsilk
            };

            m.Layers.Add(l);

            m.ZoomToExtents();

            var sw  = new System.Diagnostics.Stopwatch();
            var img = m.GetMap();

            sw.Start();
            img = m.GetMap();
            img.Save(System.IO.Path.Combine(UnitTestsFixture.GetImageDirectory(this), "PolygonSymbolizer-1.bmp"), System.Drawing.Imaging.ImageFormat.Bmp);
            sw.Stop();
            System.Diagnostics.Trace.WriteLine(string.Format("Rendering new method:{0}ms", sw.ElapsedMilliseconds));

            l.Symbolizer = new SharpMap.Rendering.Symbolizer.BasicPolygonSymbolizer()
            {
                Fill = new System.Drawing.Drawing2D.HatchBrush(
                    System.Drawing.Drawing2D.HatchStyle.WideDownwardDiagonal,
                    System.Drawing.Color.Red /*,
                                              * System.Drawing.Color.LightPink*/),
                UseClipping = false,
                //Outline = System.Drawing.Pens.AliceBlue
            };

            sw.Reset(); sw.Start();
            img = m.GetMap();
            img.Save(System.IO.Path.Combine(UnitTestsFixture.GetImageDirectory(this), "PolygonSymbolizer-2.bmp"), System.Drawing.Imaging.ImageFormat.Bmp);
            sw.Stop();
            System.Diagnostics.Trace.WriteLine(string.Format("Rendering new method:{0}ms", sw.ElapsedMilliseconds));
        }
Example #25
0
 public void WorldToImage()
 {
     SharpMap.Map map = new SharpMap.Map(new System.Drawing.Size(1000, 500));
     map.Zoom   = 360;
     map.Center = GeometryFactory.CreateCoordinate(0, 0);
     Assert.AreEqual(new System.Drawing.PointF(500, 250), map.WorldToImage(GeometryFactory.CreateCoordinate(0, 0)));
     Assert.AreEqual(new System.Drawing.PointF(0, 0), map.WorldToImage(GeometryFactory.CreateCoordinate(-180, 90)));
     Assert.AreEqual(new System.Drawing.PointF(0, 500), map.WorldToImage(GeometryFactory.CreateCoordinate(-180, -90)));
     Assert.AreEqual(new System.Drawing.PointF(1000, 0), map.WorldToImage(GeometryFactory.CreateCoordinate(180, 90)));
     Assert.AreEqual(new System.Drawing.PointF(1000, 500), map.WorldToImage(GeometryFactory.CreateCoordinate(180, -90)));
 }
Example #26
0
        private static SharpMap.Map InitializeMapOsm()
        {
            var map = new SharpMap.Map();

            var tileLayer = new SharpMap.Layers.TileAsyncLayer(new BruTile.Web.OsmTileSource(), "TileLayer - OSM");

            map.BackgroundLayer.Add(tileLayer);
            map.ZoomToBox(tileLayer.Envelope);

            return(map);
        }
Example #27
0
        public ImageMapPoint(SharpMap.Geometries.Geometry geom, SharpMap.Map map, ImageMapStyle mapStyle)
            : base(geom, map)
        {
            this.Radius = mapStyle.Point.Radius;

            SharpMap.Geometries.Point P = geom as SharpMap.Geometries.Point;
            PointF pf = map.WorldToImage(P);

            map.MapTransform.TransformPoints(new PointF[] { pf });
            center = new System.Drawing.Point((int)pf.X, (int)pf.Y);
        }
Example #28
0
 public void WorldToImage()
 {
     SharpMap.Map map = new SharpMap.Map(new System.Drawing.Size(1000, 500));
     map.Zoom   = 360;
     map.Center = new SharpMap.Geometries.Point(0, 0);
     Assert.AreEqual(new System.Drawing.PointF(500, 250), map.WorldToImage(new SharpMap.Geometries.Point(0, 0)));
     Assert.AreEqual(new System.Drawing.PointF(0, 0), map.WorldToImage(new SharpMap.Geometries.Point(-180, 90)));
     Assert.AreEqual(new System.Drawing.PointF(0, 500), map.WorldToImage(new SharpMap.Geometries.Point(-180, -90)));
     Assert.AreEqual(new System.Drawing.PointF(1000, 0), map.WorldToImage(new SharpMap.Geometries.Point(180, 90)));
     Assert.AreEqual(new System.Drawing.PointF(1000, 500), map.WorldToImage(new SharpMap.Geometries.Point(180, -90)));
 }
Example #29
0
        public void GetLayerByName_Indexer()
        {
            SharpMap.Map map = new SharpMap.Map();
            map.Layers.Add(new SharpMap.Layers.VectorLayer("Layer 1"));
            map.Layers.Add(new SharpMap.Layers.VectorLayer("Layer 3"));
            map.Layers.Add(new SharpMap.Layers.VectorLayer("Layer 2"));

            SharpMap.Layers.ILayer layer = map.Layers["Layer 2"];
            Assert.IsNotNull(layer);
            Assert.AreEqual("Layer 2", layer.LayerName);
        }
Example #30
0
 /// <summary>
 /// Initializes a new map
 /// </summary>
 public MapImage()
 {
     _Map                = new SharpMap.Map(base.Size);
     _Activetool         = Tools.None;
     base.MouseMove     += new System.Windows.Forms.MouseEventHandler(this.MapImage_MouseMove);
     base.MouseUp       += new System.Windows.Forms.MouseEventHandler(this.MapImage_MouseUp);
     base.MouseDown     += new System.Windows.Forms.MouseEventHandler(this.MapImage_MouseDown);
     base.MouseWheel    += new System.Windows.Forms.MouseEventHandler(this.MapImage_Wheel);
     this.Cursor         = Cursors.Cross;
     this.DoubleBuffered = true;
 }
Example #31
0
		/// <summary>
		/// Initializes a new map
		/// </summary>
		public MapImage()
		{
			_Map = new SharpMap.Map(base.Size);
			_Activetool = Tools.None;
			base.MouseMove += new System.Windows.Forms.MouseEventHandler(this.MapImage_MouseMove);
			base.MouseUp += new System.Windows.Forms.MouseEventHandler(this.MapImage_MouseUp);
			base.MouseDown += new System.Windows.Forms.MouseEventHandler(this.MapImage_MouseDown);
			base.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.MapImage_Wheel);
			this.Cursor = Cursors.Cross;
			this.DoubleBuffered = true;
		}
Example #32
0
        public void GetLayerByName_Indexer()
        {
            SharpMap.Map map = new SharpMap.Map();
            map.Layers.Add(new SharpMap.Layers.VectorLayer("Layer 1"));
            map.Layers.Add(new SharpMap.Layers.VectorLayer("Layer 3"));
            map.Layers.Add(new SharpMap.Layers.VectorLayer("Layer 2"));

            SharpMap.Layers.ILayer layer = map.Layers["Layer 2"];
            Assert.IsNotNull(layer);
            Assert.AreEqual("Layer 2", layer.LayerName);
        }
Example #33
0
		public void WorldToImage()
		{
			SharpMap.Map map = new SharpMap.Map(new System.Drawing.Size(1000, 500));
			map.Zoom = 360;
			map.Center = GeometryFactory.CreateCoordinate(0, 0);
			Assert.AreEqual(new System.Drawing.PointF(500, 250), map.WorldToImage(GeometryFactory.CreateCoordinate(0, 0)));
			Assert.AreEqual(new System.Drawing.PointF(0, 0), map.WorldToImage(GeometryFactory.CreateCoordinate(-180, 90)));
			Assert.AreEqual(new System.Drawing.PointF(0, 500), map.WorldToImage(GeometryFactory.CreateCoordinate(-180, -90)));
			Assert.AreEqual(new System.Drawing.PointF(1000, 0), map.WorldToImage(GeometryFactory.CreateCoordinate(180, 90)));
			Assert.AreEqual(new System.Drawing.PointF(1000, 500), map.WorldToImage(GeometryFactory.CreateCoordinate(180, -90)));
		}
Example #34
0
		public void WorldToImage()
		{
			SharpMap.Map map = new SharpMap.Map(new System.Drawing.Size(1000, 500));
			map.Zoom = 360;
			map.Center = new SharpMap.Geometries.Point(0, 0);
			Assert.AreEqual(new System.Drawing.PointF(500, 250), map.WorldToImage(new SharpMap.Geometries.Point(0, 0)));
			Assert.AreEqual(new System.Drawing.PointF(0, 0), map.WorldToImage(new SharpMap.Geometries.Point(-180, 90)));
			Assert.AreEqual(new System.Drawing.PointF(0, 500), map.WorldToImage(new SharpMap.Geometries.Point(-180, -90)));
			Assert.AreEqual(new System.Drawing.PointF(1000, 0), map.WorldToImage(new SharpMap.Geometries.Point(180, 90)));
			Assert.AreEqual(new System.Drawing.PointF(1000, 500), map.WorldToImage(new SharpMap.Geometries.Point(180, -90)));
		}
Example #35
0
        private static SharpMap.Map InitializeMapBing(KnownTileSource mt)
        {
            var map = new SharpMap.Map();

            var tileLayer = new SharpMap.Layers.TileLayer(
                KnownTileSources.Create(mt), "TileLayer - Bing " + mt);

            map.BackgroundLayer.Add(tileLayer);
            map.ZoomToBox(tileLayer.Envelope);
            return(map);
        }
        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);
        }
Example #37
0
        private void radioButton2_MouseUp(object sender, MouseEventArgs e)
        {
            var rb = sender as RadioButton;

            if (rb == null)
            {
                return;
            }

            if (e.Button != MouseButtons.Right)
            {
                return;
            }

            SharpMap.Map map = null;
            switch (rb.Name)
            {
            case "radioButton2":     // ShapeFile
                map = Samples.ShapefileSample.InitializeMap(tbAngle.Value, GetOpenFileName("Shapefile|*.shp"));
                break;

            case "radioButton5":     // Ogr
                map = Samples.OgrSample.InitializeMap(tbAngle.Value, GetOpenFileName("Ogr Datasource|*.*"));
                break;

            case "radioButton6":     // Gdal
                map = Samples.GdalSample.InitializeMap(tbAngle.Value, GetOpenFileName("Gdal Datasource|*.*"));
                break;

            case "radioButton9":     // spatialite
                map = Samples.SpatiaLiteSample.InitializeMap(tbAngle.Value, GetOpenFileName("SpatiaLite 2|*.db;*.sqlite"));
                break;
            }

            if (map == null)
            {
                return;
            }


            //Add checked Map decorations
            foreach (ListViewItem checkedItem in lvwDecorations.CheckedItems)
            {
                Type mdType;
                if (MapDecorationTypes.TryGetValue(checkedItem.Text, out mdType))
                {
                    IMapDecoration md = Activator.CreateInstance(mdType) as IMapDecoration;
                    map.Decorations.Add(md);
                }
            }

            mapBox1.Map = map;
        }
Example #38
0
        public static SharpMap.Map InitializeMap(int angle, string[] filenames)
        {
            var map = new SharpMap.Map();
            for (int i = 0; i < filenames.Length; i++)
                map.Layers.Add(new SharpMap.Layers.GdalRasterLayer(System.IO.Path.GetFileName(filenames[i]), filenames[i]));

            System.Drawing.Drawing2D.Matrix mat = new System.Drawing.Drawing2D.Matrix();
            mat.RotateAt(angle, map.WorldToImage(map.Center));
            map.MapTransform = mat;
            map.ZoomToExtents();
            return map;
        }
Example #39
0
        private void OnInvokeSharpMapLayerDialog(object sender, EventArgs e)
        {
            var map = new SharpMap.Map();
            var ts  = new BruTile.Web.OsmTileSource();
            var tl  = new SharpMap.Layers.TileLayer(ts, "OSM");

            map.Layers.Add(tl);

            var sml = new SharpMapLayer(map);

            App.Map.Layers.Add(sml);
        }
Example #40
0
        private static SharpMap.Map InitializeMapOsm()
        {
            var map = new SharpMap.Map();

            var tileLayer = new SharpMap.Layers.TileAsyncLayer(
                KnownTileSources.Create(KnownTileSource.OpenStreetMap), "TileLayer - OSM");

            map.BackgroundLayer.Add(tileLayer);
            map.ZoomToBox(tileLayer.Envelope);

            return(map);
        }
Example #41
0
        public void TestBasicLineSymbolizer()
        {
            if (!System.IO.File.Exists("d:\\daten\\GeoFabrik\\roads.shp"))
            {
                throw new NUnit.Framework.IgnoreException("");
            }

            var p = new SharpMap.Data.Providers.ShapeFile(@"d:\\daten\\GeoFabrik\\roads.shp", false);
            var l = new SharpMap.Layers.VectorLayer("roads", p);

            //l.Style.Outline = new System.Drawing.Pen(System.Drawing.Color.Firebrick, 5);
            l.Style.Line          = new System.Drawing.Pen(System.Drawing.Color.Gold, 1);
            l.Style.EnableOutline = false;
            var m = new SharpMap.Map(new System.Drawing.Size(1440, 1080))
            {
                BackColor = System.Drawing.Color.Cornsilk
            };

            m.Layers.Add(l);

            m.ZoomToExtents();

            var sw = new System.Diagnostics.Stopwatch();

            sw.Start();
            m.GetMap();

            sw.Stop();
            System.Console.WriteLine(string.Format("Rendering old method: {0}ms", sw.ElapsedMilliseconds));
            sw.Reset();
            sw.Start();
            var bmp = m.GetMap();

            sw.Stop();
            System.Console.WriteLine(string.Format("Rendering old method: {0}ms", sw.ElapsedMilliseconds));
            bmp.Save("NDSRoads1.bmp");


            var cls = new SharpMap.Rendering.Symbolizer.CachedLineSymbolizer();

            //cls.LineSymbolizeHandlers.Add(new SharpMap.Rendering.Symbolizer.PlainLineSymbolizeHandler { Line = new System.Drawing.Pen(System.Drawing.Color.Firebrick, 5) });
            cls.LineSymbolizeHandlers.Add(new SharpMap.Rendering.Symbolizer.PlainLineSymbolizeHandler {
                Line = new System.Drawing.Pen(System.Drawing.Color.Gold, 1)
            });

            l.Style.LineSymbolizer = cls;
            sw.Reset(); sw.Start();
            bmp = m.GetMap();
            sw.Stop();
            System.Console.WriteLine(string.Format("Rendering new method: {0}ms", sw.ElapsedMilliseconds));
            bmp.Save("NDSRoads2.bmp");
        }
Example #42
0
 public void Initalize_MapInstance()
 {
     SharpMap.Map map = new SharpMap.Map(new System.Drawing.Size(2, 1));
     Assert.IsNotNull(map);
     Assert.IsNotNull(map.Layers);
     Assert.AreEqual(2f, map.Size.Width);
     Assert.AreEqual(1f, map.Size.Height);
     Assert.AreEqual(System.Drawing.Color.Transparent, map.BackColor);
     Assert.AreEqual(double.MaxValue, map.MaximumZoom);
     Assert.AreEqual(0, map.MinimumZoom);
     Assert.AreEqual(new SharpMap.Geometries.Point(0, 0), map.Center, "map.Center should be initialized to (0,0)");
     Assert.AreEqual(1, map.Zoom, "Map zoom should be initialized to 1.0");
 }
Example #43
0
 public void Render(SharpMap.Map map, GeoAPI.Geometries.ILineal geometry, System.Drawing.Graphics graphics)
 {
     if (geometry is GeoAPI.Geometries.IMultiLineString)
     {
         var mls = (GeoAPI.Geometries.IMultiLineString)geometry;
         for (var i = 0; i < mls.Count; i++)
         {
             OnRenderInternal(map, (GeoAPI.Geometries.ILineString)mls.GetGeometryN(i), graphics);
         }
         return;
     }
     OnRenderInternal(map, (GeoAPI.Geometries.ILineString)geometry, graphics);
 }
Example #44
0
		public void Initalize_MapInstance()
		{
			SharpMap.Map map = new SharpMap.Map(new System.Drawing.Size(2,1));
			Assert.IsNotNull(map);
			Assert.IsNotNull(map.Layers);
			Assert.AreEqual(2f, map.Size.Width);
			Assert.AreEqual(1f, map.Size.Height);
			Assert.AreEqual(System.Drawing.Color.Transparent, map.BackColor);
			Assert.AreEqual(double.MaxValue, map.MaximumZoom);
			Assert.AreEqual(0, map.MinimumZoom);
			Assert.AreEqual(new SharpMap.Geometries.Point(0, 0), map.Center, "map.Center should be initialized to (0,0)");
			Assert.AreEqual(1, map.Zoom, "Map zoom should be initialized to 1.0");
		}
Example #45
0
        /// <summary>
        /// Transforms from world coordinate system (WCS) to image coordinates
        /// NOTE: This method DOES NOT take the MapTransform property into account (use SharpMap.Map.MapToWorld instead)
        /// </summary>
        /// <param name="p">Point in WCS</param>
        /// <param name="map">Map reference</param>
        /// <returns>Point in image coordinates</returns>
        public static System.Drawing.PointF WorldtoMap(SharpMap.Geometries.Point p, SharpMap.Map map)
        {
            //if (map.MapTransform != null && !map.MapTransform.IsIdentity)
            //	map.MapTransform.TransformPoints(new System.Drawing.PointF[] { p });
            System.Drawing.PointF result = new System.Drawing.Point();
            double Height = (map.Zoom * map.Size.Height) / map.Size.Width;
            double left   = map.Center.X - map.Zoom * 0.5;
            double top    = map.Center.Y + Height * 0.5 * map.PixelAspectRatio;

            result.X = (float)((p.X - left) / map.PixelWidth);
            result.Y = (float)((top - p.Y) / map.PixelHeight);
            return(result);
        }
Example #46
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // set up sharpmap
            // Note: The process must run as 32-bit! The data source for map&market and AM use Access with OleDB.

            // create sharp map
            map = new SharpMap.Map(pictureBox1.ClientSize);

            // add background layer
            map.Layers.Add(new XMapServerLayer("Background", Properties.Settings.Default.XMapServerUrl, XMapServerMode.BackGround)
            {
                User = "******", Password = Properties.Settings.Default.XMapToken
            });

            // create vector layer
            SharpMap.Layers.VectorLayer districts = new SharpMap.Layers.VectorLayer("Dístricts");
            
            // initialize data source
            districtsData = new Ptv.Controls.Map.MapMarket.MMProviderStatic(
                 @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +  System.AppDomain.CurrentDomain.BaseDirectory + @"\Data\Districts.mdb",
                 "KRE", "GID", "XMIN", "YMIN", "XMAX", "YMAX", "WKB_GEOMETRY");
            districts.DataSource = districtsData;

            // set style
            districts.Theme = new SharpMap.Rendering.Thematics.CustomTheme(GetCountryStyle);

            // insert into sharp map
            map.Layers.Add(districts);

            // add label layer
            map.Layers.Add(new XMapServerLayer("Labels", Properties.Settings.Default.XMapServerUrl, XMapServerMode.Overlay)
            {
                User = "******",
                Password = Properties.Settings.Default.XMapToken
            });

            // insert address monitor layers
            var rootPath = System.AppDomain.CurrentDomain.BaseDirectory + "Data";
            var bitmapPath = rootPath + "\\Bitmaps";
            string[] poiFiles = System.IO.Directory.GetFiles(rootPath, "*.poi");
            foreach (string poiFile in poiFiles)
            {
                var layer = AMLayerFactory.CreateLayer(poiFile, bitmapPath);
                layer.MaxVisible = 9999999999; // override the automatic display threshold
                map.Layers.Add(layer);
            }

            // set map extends
            ZoomToBox();
        }
Example #47
0
        public void TestRealData()
        {
            var fdt = GetRealFeatureDataTable();
            FillRealDataTable(fdt);

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


            var m = new SharpMap.Map(new Size(640, 640));
            m.Layers.Add(new TileLayer(
                new OsmTileSource(new OsmRequest(KnownTileServers.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");
            }

        }
Example #48
0
        public void TestWarpedLineSymbolizer()
        {
            var p = new SharpMap.Data.Providers.ShapeFile(@"d:\\daten\GeoFabrik\\Aurich\\roads.shp", false);

            var l = new SharpMap.Layers.VectorLayer("roads", p);
            var cls = new SharpMap.Rendering.Symbolizer.CachedLineSymbolizer();
            cls.LineSymbolizeHandlers.Add(new SharpMap.Rendering.Symbolizer.PlainLineSymbolizeHandler { Line = new System.Drawing.Pen(System.Drawing.Color.Gold, 2) });
            cls.LineSymbolizeHandlers.Add(new SharpMap.Rendering.Symbolizer.WarpedLineSymbolizeHander { Pattern = SharpMap.Rendering.Symbolizer.WarpedLineSymbolizer.GetGreaterSeries(3, 3), Line = new System.Drawing.Pen(System.Drawing.Color.Firebrick, 1) });
            l.Style.LineSymbolizer = cls;

            var m = new SharpMap.Map(new System.Drawing.Size(720, 540)) {BackColor = System.Drawing.Color.Cornsilk};
            m.Layers.Add(l);

            m.ZoomToExtents();

            var sw = new System.Diagnostics.Stopwatch();

            sw.Start();
            var bmp = m.GetMap();
            sw.Stop();
            System.Console.WriteLine(string.Format("Rendering new method: {0}ms", sw.ElapsedMilliseconds));
            bmp.Save("AurichRoads1.bmp");

            cls.LineSymbolizeHandlers[1] = new SharpMap.Rendering.Symbolizer.WarpedLineSymbolizeHander
            {
                Pattern = SharpMap.Rendering.Symbolizer.WarpedLineSymbolizer.GetTriangleSeries(4, 7),
                Line = new System.Drawing.Pen(System.Drawing.Color.Firebrick, 1),
                Fill = new System.Drawing.SolidBrush(System.Drawing.Color.Firebrick)
            };
            sw.Start();
            bmp = m.GetMap();
            sw.Stop();
            System.Console.WriteLine(string.Format("Rendering new method: {0}ms", sw.ElapsedMilliseconds));
            bmp.Save("AurichRoads2.bmp");

            //cls.LineSymbolizeHandlers[0] = cls.LineSymbolizeHandlers[1];
            cls.LineSymbolizeHandlers[1] = new SharpMap.Rendering.Symbolizer.WarpedLineSymbolizeHander
                                               {
                                                   Pattern = SharpMap.Rendering.Symbolizer.WarpedLineSymbolizer.GetZigZag(4, 4),
                                                   Line = new System.Drawing.Pen(System.Drawing.Color.Firebrick, 1),
                                                   //Fill = new System.Drawing.SolidBrush(System.Drawing.Color.Firebrick)
                                               };
            sw.Start();
            bmp = m.GetMap();
            sw.Stop();
            System.Console.WriteLine(string.Format("Rendering new method: {0}ms", sw.ElapsedMilliseconds));
            bmp.Save("AurichRoads3.bmp");

        }
Example #49
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;
        }
Example #50
0
        public static void Example1()
        {
            var map = new SharpMap.Map(new Size(1280, 1084));

            SharpMap.Data.Providers.IProvider provider =
                new SharpMap.Data.Providers.ShapeFile(
                    @"C:\temp\Data\niedersachsen.shp\railways.shp");
            var vl = new SharpMap.Layers.VectorLayer("Railways", provider);

            map.Layers.Add(vl);

            map.ZoomToBox(vl.Envelope);

            var mapImage = map.GetMap();
            mapImage.Save("Example1.png",
                System.Drawing.Imaging.ImageFormat.Png);
        }
        public void TestPlainPolygonSymbolizer()
        {
            var provider = new SharpMap.Data.Providers.ShapeFile(
                "..\\..\\..\\WinFormSamples\\GeoData\\World\\countries.shp", true);
            var l = new SharpMap.Layers.Symbolizer.PolygonalVectorLayer("Countries", provider);
            l.Symbolizer = new ModifiedBasicPolygonSymbolizer
                {
                    Fill = new System.Drawing.Drawing2D.HatchBrush(
                            System.Drawing.Drawing2D.HatchStyle.WideDownwardDiagonal, 
                            System.Drawing.Color.Red /*,
                            System.Drawing.Color.LightPink*/),
                    UseClipping = false,
                    //Outline = System.Drawing.Pens.AliceBlue
                };

            var m = new SharpMap.Map(new System.Drawing.Size(1440, 1080)) { BackColor = System.Drawing.Color.Cornsilk };
            m.Layers.Add(l);

            m.ZoomToExtents();

            var sw = new System.Diagnostics.Stopwatch();
            var img = m.GetMap();
            
            sw.Start();
            img = m.GetMap();
            img.Save("PolygonSymbolizer-1.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
            sw.Stop();
            System.Console.WriteLine(string.Format("Rendering new method:{0}ms", sw.ElapsedMilliseconds));

            l.Symbolizer = new SharpMap.Rendering.Symbolizer.BasicPolygonSymbolizer()
            {
                Fill = new System.Drawing.Drawing2D.HatchBrush(
                        System.Drawing.Drawing2D.HatchStyle.WideDownwardDiagonal,
                        System.Drawing.Color.Red/*,
                        System.Drawing.Color.LightPink*/),
                UseClipping = false,
                //Outline = System.Drawing.Pens.AliceBlue
            };

            sw.Reset(); sw.Start();
            img = m.GetMap();
            img.Save("PolygonSymbolizer-2.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
            sw.Stop();
            System.Console.WriteLine(string.Format("Rendering new method:{0}ms", sw.ElapsedMilliseconds));
        
        }
Example #52
0
    public ComplexMap()
    {
      try
      {
        //engine = new IntelliTrack.Service.Engine.ServerEngine();
        //engine.Init();
        _MapSize.Width = 300;
        _MapSize.Height = 300;
        _OverviewSize.Width = 50;
        _OverviewSize.Height = 50;
        _BaseMap = new SharpMap.Map(_MapSize);
        _OverviewMap = new SharpMap.Map(_OverviewSize);
        _RealTimeMap = new SharpMap.Map(_MapSize);
        BaseMapRedrawn = false;
        RealTimeMapRedrawn = false;
        
        udpHandler = new IntelliTrack.Client.Application.UDP.UDPHandler();
        udpHandler.UDPArrivedData += new IntelliTrack.Client.Application.UDP.UDPHandler.UDPDataArrived(UDPArrivedData);
        
        Layers_ = new Dictionary<string, SharpMap.Layers.ILayer>();
        RealTimeLayers_ = new List<string>();
        _MapLoaded = false;
        //System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(LoadInformation));
        forms_ = new List<frmBaseDockingForm>();
        //t.Start();
        LoadInformation();
        timer = new System.Timers.Timer(10000);
        /*timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);*/

        double IntervaloMilisegundosReloadFromDB = ObtenerIntervaloReloadDB();
        if (IntervaloMilisegundosReloadFromDB > 0)
        {
          TimerReloadFromDB = new System.Timers.Timer(IntervaloMilisegundosReloadFromDB);
          TimerReloadFromDB.Elapsed += new System.Timers.ElapsedEventHandler(TimerReloadFromDB_Elapsed);
        }


        //timer.Enabled = true;
        //engine.Start();
      }
      catch (Exception ex)
      {
        System.Diagnostics.Debug.WriteLine(ex.Message);
        System.Diagnostics.Debug.WriteLine(ex.StackTrace);
      }
    }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="gMapControl"></param>
        public SharpMapMarker(GMap.NET.WindowsForms.GMapControl gMapControl)
            : base(GMap.NET.PointLatLng.Zero)
        {
            m_gMapControl = gMapControl;

            myMap = new SharpMap.Map(new System.Drawing.Size(m_gMapControl.Width, m_gMapControl.Height));

            m_shapeLayer = new SharpMap.Layers.VectorLayer("SharpMap layer" + Guid.NewGuid());
            //m_shapeLayer.Style.Outline = new System.Drawing.Pen(System.Drawing.Color.Green, 1f);
            m_shapeLayer.Style.EnableOutline = false;
            m_shapeLayer.Style.Line = new System.Drawing.Pen(System.Drawing.Color.Blue, 1f);

            //myMap.Center = new SharpMap.Geometries.Point(121.54399, 29.868336);

            DisableRegionCheck = true;
            IsHitTestVisible = false;
        }
Example #54
0
        public CreateTilesSample(SharpMap.Map map, bool transformToMercator, string rootTilesPath)
        {
            _map = map.Clone();
            
            _map.MaximumZoom = double.MaxValue;
            _map.MinimumZoom = 0;

            if (transformToMercator)
            {
                TransformLayers(LayerTools.Wgs84toGoogleMercator);
            }

            _rootTilesPath = rootTilesPath;
            if (!Directory.Exists(_rootTilesPath))
            {
                Directory.CreateDirectory(_rootTilesPath);
            }
        }
Example #55
0
        public void MultiLineCenterAlignedTest()
        {
            using (var m = new SharpMap.Map(new Size(600, 400)))
            {
                m.BackColor = Color.SeaShell;
                //_featureDataTable.Clear();
                var gfp = new GeometryFeatureProvider(_featureDataTable);
                var vl = new VectorLayer("VL", gfp);
                var ll = new LabelLayer("MultiLineCenterAligned") {DataSource = gfp};
                ll.Theme = CreateTheme();
                ll.LabelColumn = "LABEL";
                m.Layers.Add(vl);
                m.Layers.Add(ll);

                m.ZoomToExtents();
                using (var mapImage = m.GetMap())
                    mapImage.Save("MultiLineCenterAligned.png", ImageFormat.Png);
            }
        }
Example #56
0
        public void TestIncompleteImage()
        {
            using (var map = new SharpMap.Map(new Size(2500, 2500)))
            {
                map.BackColor = Color.Magenta;
                var br = new BingRequest(BingRequest.UrlBing, "", BingMapType.Hybrid);
                var bts = new BingTileSource(br);
                var tl = new TileLayer(bts, "TileLayer - " + BingMapType.Hybrid.ToString(), Color.Transparent, true,
                                       System.IO.Path.Combine(_fileCacheRoot, "BingStaging"));
                map.Layers.Add(tl);

                map.ZoomToBox(new Envelope(829384.331338522, 837200.785470394, 7068020.31417922, 7072526.73926545)
                            /*new Envelope(-239839.49199841652, 78451.759683380573, -37033.0152981899, 106723.52879865949)*/);
                using (var image = map.GetMap())
                {
                    image.Save("TestIncompleteImage.png", ImageFormat.Png);
                }
            }
        }
Example #57
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.FeatureProvider(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();
        }
        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;
        }
Example #59
-1
        public void TestPerformanceLinealLayer()
        {
            NUnit.Framework.Assert.IsTrue(System.IO.File.Exists(GetTestDataFilePath("roads_ugl.shp")),
                                          "Specified shapefile is not present!");

            var map = new SharpMap.Map(new System.Drawing.Size(1024, 768));

            var shp = new SharpMap.Data.Providers.ShapeFile(GetTestDataFilePath("roads_ugl.shp"));
            var lyr = new SharpMap.Layers.Symbolizer.LinealVectorLayer("Roads", shp)
                          {
                              Symbolizer =
                                  new SharpMap.Rendering.Symbolizer.BasicLineSymbolizer
                                      {Line = new System.Drawing.Pen(System.Drawing.Color.Black)}
                          };
            map.Layers.Add(lyr);
            map.ZoomToExtents();

            RepeatedRendering(map, shp.GetFeatureCount(), NumberOfRenderCycles, out _msLineal);
            System.Console.WriteLine("\nWith testing if record is deleted ");
            
            shp.CheckIfRecordIsDeleted = true;
            long tmp;
            RepeatedRendering(map, shp.GetFeatureCount(), 1, out tmp);

            var res = map.GetMap();
            var path = System.IO.Path.ChangeExtension(GetTestDataFilePath("SPATIAL_F_SKARVMUFF.shp"), "lineal.png");
            res.Save(path, System.Drawing.Imaging.ImageFormat.Png);
            System.Console.WriteLine("\nResult saved at file://" + path.Replace('\\', '/'));
        }
Example #60
-1
        public static SharpMap.Map InitializeMap(float angle)
        {
            using (var ofn = new System.Windows.Forms.OpenFileDialog())
            {
                ofn.Filter = "All files|*.*";
                ofn.FilterIndex = 0;

                if (ofn.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    var m = new SharpMap.Map();
                    var l = new SharpMap.Layers.GdiImageLayer(ofn.FileName);
                    m.Layers.Add(l);

                    m.ZoomToExtents();

                    var mat = new System.Drawing.Drawing2D.Matrix();
                    mat.RotateAt(angle, m.WorldToImage(m.Center));
                    m.MapTransform = mat;
                    m.MaximumExtents = m.GetExtents();
                    m.EnforceMaximumExtents = true;
                    return m;
                }
            }
            return null;

        }