public void TestSerializeWmsLayerWithCredentials() { SharpMap.Map m = new SharpMap.Map(); SharpMap.Layers.WmsLayer l = new SharpMap.Layers.WmsLayer("testwms", "http://sampleserver1.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer", TimeSpan.MaxValue, System.Net.WebRequest.DefaultWebProxy, new NetworkCredential("test", "pw")); l.AddChildLayers(l.RootLayer, false); m.Layers.Add(l); MemoryStream ms = new MemoryStream(); SharpMap.Serialization.MapSerialization.SaveMapToStream(m, ms); string txt = System.Text.ASCIIEncoding.ASCII.GetString(ms.ToArray()); System.Diagnostics.Trace.WriteLine(txt); Assert.IsTrue(txt.Contains(@"<Layers> <MapLayer xsi:type=""WmsLayer""> <Name>testwms</Name> <MinVisible>0</MinVisible> <MaxVisible>1.7976931348623157E+308</MaxVisible> <OnlineURL>http://sampleserver1.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer?SERVICE=WMS&REQUEST=GetCapabilities&</OnlineURL> <WmsUser>test</WmsUser> <WmsPassword>pw</WmsPassword> <WmsLayers>0,1,2</WmsLayers> </MapLayer> </Layers>")); ms.Close(); }
public static Map InitializeMap(float angle) { string wmsUrl = "http://dev:8080/geoserver/ows?service=wms&version=1.1.1&request=GetCapabilities"; Map map = new Map(); WmsLayer layWms = new WmsLayer("Demis Map", wmsUrl); layWms.AddLayer("sf:roads"); //layWms.AddLayer("Topography"); //layWms.AddLayer("Hillshading"); layWms.SetImageFormat(layWms.OutputFormats[0]); layWms.ContinueOnError = true; //Skip rendering the WMS Map if the server couldn't be requested (if set to false such an event would crash the app) layWms.TimeOut = 5000; //Set timeout to 5 seconds layWms.SRID = 4326; map.Layers.Add(layWms); //limit the zoom to 360 degrees width map.MaximumZoom = 360; map.BackColor = Color.LightBlue; map.Zoom = 360; map.Center = new Point(0, 0); Matrix mat = new Matrix(); mat.RotateAt(angle, map.WorldToImage(map.Center)); map.MapTransform = mat; map.ZoomToExtents(); return map; }
public void BgColor_NamedColor_SetUrlPropertyCorrectly() { var client = CreateClientFromXmlResult("wms.atlantedesertificazione.xml"); var layer = new WmsLayer("wms", client) {BgColor = Color.Red, SRID = 0, Transparent = false}; var url = layer.GetRequestUrl(new Envelope(1, 1, 1, 1), new Size(1, 1)); var queryString = HttpUtility.ParseQueryString(url); Assert.That(queryString["BGCOLOR"], Is.EqualTo("FF0000"), "Layer.BgColor does not produce a valid Url"); }
public void OneTimeSetUp() { try { var l = new SharpMap.Layers.WmsLayer("testwms", "http://sampleserver1.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer"); l.Dispose(); } catch (Exception e) { throw new IgnoreException("Creation of WMS Layer failed", e); } }
public static SharpMap.Layers.WmsLayer GetWmsLayer() { string wmsUrl = "http://www2.demis.nl/mapserver/request.asp"; SharpMap.Layers.WmsLayer layWms = new SharpMap.Layers.WmsLayer("Demis Map", wmsUrl); layWms.SpatialReferenceSystem = "EPSG:4326"; layWms.AddLayer("Bathymetry"); layWms.AddLayer("Ocean features"); layWms.SetImageFormat(layWms.OutputFormats[0]); layWms.ContinueOnError = true; //Skip rendering the WMS Map if the server couldn't be requested (if set to false such an event would crash the app) layWms.TimeOut = 5000; //Set timeout to 5 seconds layWms.SRID = 4326; return(layWms); }
/// <summary> /// Recursive function for retriving layer names /// </summary> /// <param name="layer"></param> /// <param name="layWms"></param> private void PrintLayers(Client.WmsServerLayer layer, WmsLayer layWms) { litLayers.Text += "<li>" + layer.Name; if (layWms.LayerList.Contains(layer.Name)) litLayers.Text += " (Enabled)"; litLayers.Text += "</li>"; if (layer.ChildLayers != null && layer.ChildLayers.Length > 0) { litLayers.Text += "<ul>"; foreach (Client.WmsServerLayer childlayer in layer.ChildLayers) PrintLayers(childlayer, layWms); litLayers.Text += "</ul>"; } }
public static SharpMap.Map InitializeWmsMap(System.Drawing.Size size) { HttpContext.Current.Trace.Write("Initializing Wms map..."); //Initialize a new map of size 'imagesize' SharpMap.Map map = new SharpMap.Map(size); SharpMap.Layers.WmsLayer layWms = GetWmsLayer(); //Set up the countries layer SharpMap.Layers.VectorLayer layCountries = new SharpMap.Layers.VectorLayer("Countries"); //Set the datasource to a shapefile in the App_data folder layCountries.DataSource = new SharpMap.Data.Providers.ShapeFile(HttpContext.Current.Server.MapPath(@"~\App_data\countries.shp"), true); //Set fill-style to green layCountries.Style.Fill = new SolidBrush(Color.Green); //Set the polygons to have a black outline layCountries.Style.Outline = System.Drawing.Pens.Yellow; layCountries.Style.EnableOutline = true; layCountries.SRID = 4326; //Set up a country label layer SharpMap.Layers.LabelLayer layLabel = new SharpMap.Layers.LabelLayer("Country labels"); layLabel.DataSource = layCountries.DataSource; layLabel.Enabled = true; layLabel.LabelColumn = "Name"; layLabel.Style = new SharpMap.Styles.LabelStyle(); layLabel.Style.ForeColor = Color.White; layLabel.Style.Font = new Font(FontFamily.GenericSerif, 8); layLabel.Style.BackColor = new System.Drawing.SolidBrush(Color.FromArgb(128, 255, 0, 0)); layLabel.MaxVisible = 90; layLabel.MinVisible = 30; layLabel.Style.HorizontalAlignment = SharpMap.Styles.LabelStyle.HorizontalAlignmentEnum.Center; layLabel.SRID = 4326; //Add the layers to the map object. //The order we add them in are the order they are drawn, so we add the rivers last to put them on top map.Layers.Add(layWms); map.Layers.Add(layCountries); map.Layers.Add(layLabel); //limit the zoom to 360 degrees width map.MaximumZoom = 360; map.BackColor = Color.LightBlue; map.Zoom = 360; map.Center = new SharpMap.Geometries.Point(0, 0); HttpContext.Current.Trace.Write("Map initialized"); return(map); }
public static WmsLayer GetWmsLayer() { string wmsUrl = "http://www2.demis.nl/worldmap/wms.asp"; WmsLayer layWms = new WmsLayer("Demis Map", wmsUrl); layWms.AddLayer("Bathymetry"); //layWms.AddLayer("Coastlines"); //layWms.AddLayer("Countries"); //layWms.AddLayer("Rivers"); //layWms.AddLayer("Streams"); layWms.AddLayer("Ocean features"); layWms.SetImageFormat(layWms.OutputFormats[0]); layWms.ContinueOnError = true; //Skip rendering the WMS Map if the server couldn't be requested (if set to false such an event would crash the app) layWms.TimeOut = 5000; //Set timeout to 5 seconds layWms.SRID = 4326; return layWms; }
private void PrintWmsInfo() { SharpMap.Layers.WmsLayer layWms = MapHelper.GetWmsLayer(); //Get request url for WMS hlWmsImage.NavigateUrl = layWms.GetRequestUrl( new SharpMap.Geometries.BoundingBox(Center.X - Zoom * 0.5, Center.Y - Zoom * 0.25, Center.X + Zoom * 0.5, Center.Y + Zoom * 0.25), new Size((int)imgMap.Width.Value, (int)imgMap.Height.Value)); litLayers.Text = "<p><b>WMS Title</b>: " + layWms.ServiceDescription.Title + "<br/>Abstract: <i>" + layWms.ServiceDescription.Abstract + "</i>"; litLayers.Text += "<br/><b>WMS Layers:</b><br/>"; foreach (SharpMap.Web.Wms.Client.WmsServerLayer layer in layWms.RootLayer.ChildLayers) { PrintLayers(layer, layWms); } litLayers.Text += "</ul></p>"; }
/// <summary> /// Recursive function for retriving layer names /// </summary> /// <param name="layer"></param> /// <param name="layWms"></param> private void PrintLayers(SharpMap.Web.Wms.Client.WmsServerLayer layer, SharpMap.Layers.WmsLayer layWms) { litLayers.Text += "<li>" + layer.Name; if (layWms.LayerList.Contains(layer.Name)) { litLayers.Text += " (Enabled)"; } litLayers.Text += "</li>"; if (layer.ChildLayers != null && layer.ChildLayers.Length > 0) { litLayers.Text += "<ul>"; foreach (SharpMap.Web.Wms.Client.WmsServerLayer childlayer in layer.ChildLayers) { PrintLayers(childlayer, layWms); } litLayers.Text += "</ul>"; } }
public void TestSerializeWmsLayer() { SharpMap.Map m = new SharpMap.Map(); SharpMap.Layers.WmsLayer l = new SharpMap.Layers.WmsLayer("testwms", "http://sampleserver1.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer"); l.AddChildLayers(l.RootLayer, false); m.Layers.Add(l); MemoryStream ms = new MemoryStream(); SharpMap.Serialization.MapSerialization.SaveMapToStream(m, ms); string txt = Encoding.ASCII.GetString(ms.ToArray()); txt = txt.Replace("\r\n", ""); System.Diagnostics.Trace.WriteLine(txt); Assert.IsTrue(txt.Contains(@"<Layers><MapLayer xsi:type=""WmsLayer""> <Name>testwms</Name> <MinVisible>0</MinVisible> <MaxVisible>1.7976931348623157E+308</MaxVisible> <OnlineURL>http://sampleserver1.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer?SERVICE=WMS&REQUEST=GetCapabilities&</OnlineURL> <WmsLayers>0,1,2</WmsLayers> </MapLayer> </Layers>")); ms.Close(); }
public void AddLayerOK() { WmsLayer layer = new WmsLayer("wms", "http://wms.iter.dk/example_capabilities_1_3_0.xml"); layer.AddLayer("ROADS_1M"); }
public void AddLayerFail() { WmsLayer layer = new WmsLayer("wms", "http://wms.iter.dk/example_capabilities_1_3_0.xml"); layer.AddLayer("NonExistingLayer"); }
public static SharpMap.Layers.WmsLayer GetWmsLayer() { string wmsUrl = "http://www2.demis.nl/mapserver/request.asp"; SharpMap.Layers.WmsLayer layWms = new SharpMap.Layers.WmsLayer("Demis Map", wmsUrl); layWms.SpatialReferenceSystem = "EPSG:4326"; layWms.AddLayer("Bathymetry"); layWms.AddLayer("Ocean features"); layWms.SetImageFormat(layWms.OutputFormats[0]); layWms.ContinueOnError = true; //Skip rendering the WMS Map if the server couldn't be requested (if set to false such an event would crash the app) layWms.TimeOut = 5000; //Set timeout to 5 seconds layWms.SRID = 4326; return layWms; }
private static void AddLayerToLegend(WmsLayer layer, LegendToolItem parent) { var title = layer.RootLayer.Name; var layerItem = parent.AddItem(title); if (layer.Theme != null && layer.Theme.ThemeItems != null) { AddThemeItemsAsLegendItems(layer.Theme.ThemeItems, layerItem, false); } }
/// <summary> /// Add a list of wms layers to the map. /// </summary> /// <param name="wmsLayers"></param> public void AddWMSLayers(List<WMSInfo> wmsLayers) { wmsLayers = wmsLayers.OrderBy(layer => layer.zIndex).ToList(); try { for (int i = 0; i < wmsLayers.Count; i++) { string layername = "WMSLayer_" + i; WmsLayer layer = new WmsLayer(layername, wmsLayers[i].url); layer.SetImageFormat("image/png"); layer.BgColor = Color.White; layer.Transparent = true; layer.Version = "1.1.0"; layer.ContinueOnError = true; for (int t = 0; t < wmsLayers[i].layers.Count; t++) { string sublayerName = ""; try { sublayerName = wmsLayers[i].workspacePrefix != null ? wmsLayers[i].workspacePrefix + ":" + wmsLayers[i].layers[t] : wmsLayers[i].layers[t]; if (sublayerName != "") { layer.AddLayer(sublayerName); } } catch (Exception ex) { Logger.Fatal("WMS sublayer load error " + ex.Message, ex); } } layer.SRID = wmsLayers[i].coordinateSystemId; map.Layers.Add(layer); } } catch (Exception ex) { Logger.Fatal("WMS layer load error " + ex.Message, ex); } }