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"); }
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; } }
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); }
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; } }
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"); }
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); }
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); }
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); }
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); }
/// <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(); } }
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); }
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); }
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); }
/// <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); }
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; }
/// <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); }
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)); }
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))); }
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); }
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); }
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))); }
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); }
/// <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; }
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); }
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; }
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; }
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); }
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"); }
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"); }
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); }
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"); }
/// <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); }
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(); }
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"); } }
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"); }
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; }
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)); }
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; }
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); } }
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); } }
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); } } }
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; }
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('\\', '/')); }
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; }