private void DisplaySatelliteImage_Load(object sender, EventArgs e) { winformsMap1.MapUnit = GeographyUnit.DecimalDegree; winformsMap1.CurrentExtent = new RectangleShape(-143.4, 109.3, 116.7, -76.3); winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean); WmsRasterLayer wmsImageLayer = new WmsRasterLayer(new Uri("http://howdoiwms.thinkgeo.com/WmsServer.aspx")); // 1.3.0 server //WmsRasterLayer wmsImageLayer = new WmsRasterLayer(new Uri("http://sampleserver1.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer")); wmsImageLayer.UpperThreshold = double.MaxValue; wmsImageLayer.LowerThreshold = 0; wmsImageLayer.Open(); wmsImageLayer.ActiveStyleNames.Add("Simple"); foreach (string layerName in wmsImageLayer.GetServerLayerNames()) { wmsImageLayer.ActiveLayerNames.Add(layerName); } // this parameter is just optional. wmsImageLayer.Exceptions = "application/vnd.ogc.se_xml"; LayerOverlay imageOverlay = new LayerOverlay(); imageOverlay.Layers.Add("wmsImageLayer", wmsImageLayer); winformsMap1.Overlays.Add(imageOverlay); // GetRequestUrl for debug Debug.WriteLine(wmsImageLayer.GetRequestUrl(winformsMap1.CurrentExtent, winformsMap1.Width, winformsMap1.Height)); wmsImageLayer.Close(); winformsMap1.Refresh(); }
private void UseLayer() { mapView.Overlays.Clear(); WmsRasterLayer wmsImageLayer = new WmsRasterLayer(new Uri("http://ows.mundialis.de/services/service")); wmsImageLayer.UpperThreshold = double.MaxValue; wmsImageLayer.LowerThreshold = 0; wmsImageLayer.Open(); wmsImageLayer.ActiveLayerNames.Add("OSM-WMS"); wmsImageLayer.ActiveStyleNames.Add("default"); // this parameter is just optional. wmsImageLayer.Exceptions = "application/vnd.ogc.se_xml"; LayerOverlay staticOverlay = new LayerOverlay(); staticOverlay.Layers.Add("wmsImageLayer", wmsImageLayer); mapView.Overlays.Add(staticOverlay); wmsImageLayer.Close(); mapView.Refresh(); }
private void Form1_Load(object sender, EventArgs e) { winformsMap1.MapUnit = GeographyUnit.DecimalDegree; LayerOverlay layerOverlay = new LayerOverlay(); WmsRasterLayer wmsLayer = new WmsRasterLayer(new Uri("http://howdoiwms.thinkgeo.com/WmsServer.aspx")); wmsLayer.ActiveLayerNames.Add("COUNTRIES02"); wmsLayer.ActiveStyleNames.Add("Simple"); wmsLayer.Crs = "EPSG:4326"; wmsLayer.OutputFormat = "image/png"; layerOverlay.Layers.Add(wmsLayer); winformsMap1.Overlays.Add(layerOverlay); wmsLayer.Open(); winformsMap1.CurrentExtent = wmsLayer.GetBoundingBox(); winformsMap1.Refresh(); }
private void UseLayer() { wpfMap1.Overlays.Clear(); WmsRasterLayer wmsImageLayer = new WmsRasterLayer(new Uri("http://howdoiwms.thinkgeo.com/WmsServer.aspx")); wmsImageLayer.UpperThreshold = double.MaxValue; wmsImageLayer.LowerThreshold = 0; wmsImageLayer.Open(); foreach (string layerName in wmsImageLayer.GetServerLayerNames()) { wmsImageLayer.ActiveLayerNames.Add(layerName); wmsImageLayer.ActiveStyleNames.Add("Simple"); } // this parameter is just optional. wmsImageLayer.Exceptions = "application/vnd.ogc.se_xml"; LayerOverlay staticOverlay = new LayerOverlay(); staticOverlay.Layers.Add("wmsImageLayer", wmsImageLayer); wpfMap1.Overlays.Add(staticOverlay); wmsImageLayer.Close(); wpfMap1.Refresh(); }
private void DrawPreview() { if (WmsRasterLayer == null) { InitializeWmsRasterLayer(); } Bitmap previewBitmap = null; MemoryStream bitmapMemory = null; try { WmsRasterLayer.Open(); WmsRasterLayer.TimeoutInSecond = 30; WmsRasterLayer.ActiveLayerNames.Clear(); WmsRasterLayer.ActiveLayerNames.Add(SelectedLayer.Name); MapEngine mapEngine = new MapEngine(); mapEngine.StaticLayers.Add(WmsRasterLayer); mapEngine.CurrentExtent = WmsRasterLayer.GetBoundingBox(); previewBitmap = new Bitmap(125, 125); mapEngine.DrawStaticLayers(previewBitmap, GeographyUnit.DecimalDegree); bitmapMemory = new MemoryStream(); previewBitmap.Save(bitmapMemory, ImageFormat.Png); } catch (Exception ex) { GisEditor.LoggerManager.Log(LoggerLevel.Debug, ex.Message, new ExceptionInfo(ex)); Application.Current.Dispatcher.BeginInvoke(new Action(() => { SendMessageBox(ex.Message, "Warning"); })); } finally { if (previewBitmap != null) { previewBitmap.Dispose(); } var action = new Action(() => { if (bitmapMemory == null || bitmapMemory.Length == 0) { PreviewSource = GetDefaultPreview(); } else { PreviewSource = ToImageSource(bitmapMemory); } IsBusy = false; }); if (Application.Current != null) { Application.Current.Dispatcher.BeginInvoke(action); } else { action(); } } }
private void Connect() { if (Uri.IsWellFormedUriString(WmsServerUrl, UriKind.Absolute)) { if (WmsRasterLayer == null) { InitializeWmsRasterLayer(); } IsBusy = true; Task.Factory.StartNew(new Action(() => { Collection <string> styleNames = new Collection <string>(); Collection <string> outputFormats = new Collection <string>(); Collection <string> serverLayerNames = new Collection <string>(); try { if (!string.IsNullOrEmpty(UserName) && !string.IsNullOrEmpty(Password)) { WmsRasterLayer.Credentials = new NetworkCredential(UserName, Password); } if (!WmsRasterLayer.IsOpen) { WmsRasterLayer.Open(); } styleNames = WmsRasterLayer.GetServerStyleNames(); outputFormats = WmsRasterLayer.GetServerOutputFormats(); serverLayerNames = WmsRasterLayer.GetServerLayerNames(); } catch (Exception ex) { GisEditor.LoggerManager.Log(LoggerLevel.Debug, ex.Message, new ExceptionInfo(ex)); Application.Current.Dispatcher.BeginInvoke(new Action(() => { SendMessageBox(ex.Message, "Warning"); })); } finally { var action = new Action(() => { foreach (var item in styleNames) { styles.Add(item); } foreach (var item in outputFormats) { formats.Add(item); } if (serverLayerNames.Count() > 0) { AvailableLayers.Clear(); foreach (var serverLayer in serverLayerNames) { if (!string.IsNullOrEmpty(serverLayer)) { AvailableLayers.Add(new WmsLayerViewModel(serverLayer)); } } } IsBusy = false; }); if (Application.Current != null) { Application.Current.Dispatcher.BeginInvoke(action); } else { action(); } } })); } else { SendMessageBox("The server address is not valid.", "Info"); } }