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 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(); }
protected override RasterLayer GetRasterLayer(Uri uri, WorldFileInfo wInfo) { WmsRasterLayer layer = null; WmsRasterLayerConfigWindow wmsWindow = new WmsRasterLayerConfigWindow(); wmsWindow.ViewModel.AddToDataRepositoryVisibility = Visibility.Visible; if (wmsWindow.ShowDialog().GetValueOrDefault()) { WmsRasterLayer wmsRasterlayer = wmsWindow.ViewModel.WmsRasterLayer; wmsRasterlayer.InitializeProj4Projection(GisEditor.ActiveMap.DisplayProjectionParameters); if (wmsRasterlayer != null && wmsRasterlayer.ActiveLayerNames.Count > 0) { layer = wmsRasterlayer; } if (wmsWindow.ViewModel.DoesAddToDataRepository) { var wmsDataPlugin = GisEditor.DataRepositoryManager.GetPlugins().OfType <WmsDataRepositoryPlugin>().FirstOrDefault(); if (wmsDataPlugin != null) { wmsDataPlugin.RootDataRepositoryItem.Children.Add(new WmsDataRepositoryItem( wmsWindow.ViewModel.Name, new ObservableCollection <string>(wmsWindow.ViewModel.AvailableLayers.Select(l => l.Name)), wmsWindow.ViewModel.WmsServerUrl, wmsWindow.ViewModel.UserName, wmsWindow.ViewModel.Password, wmsWindow.ViewModel.Parameters, wmsWindow.ViewModel.Formats, wmsWindow.ViewModel.Styles, wmsWindow.ViewModel.SelectedFormat, wmsWindow.ViewModel.SelectedStyle)); } } } return(layer); }
//protected override ObservableCollection<DataRepositoryItem> GetChildrenCore() //{ // return children; //} protected override void LoadCore() { WmsRasterLayer layer = new WmsRasterLayer(new Uri(Url)) { Name = Name }; layer.ActiveLayerNames.Add(Name); layer.InitializeProj4Projection(GisEditor.ActiveMap.DisplayProjectionParameters); var layers = new Layer[] { layer }; GisEditor.ActiveMap.AddLayersBySettings(layers); GisEditor.UIManager.BeginRefreshPlugins(new RefreshArgs(this, RefreshArgsDescription.LoadCoreDescription)); }
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 AddWmsLayer() { // Create an overlay that we will add the layer to. LayerOverlay staticOverlay = new LayerOverlay(); mapView.Overlays.Add(staticOverlay); // Create the WMS layer using the parameters below. // This is a public service and is very slow most of the time. WmsRasterLayer wmsImageLayer = new WmsRasterLayer(new Uri("http://ows.mundialis.de/services/service")); wmsImageLayer.UpperThreshold = double.MaxValue; wmsImageLayer.LowerThreshold = 0; wmsImageLayer.ActiveLayerNames.Add("OSM-WMS"); wmsImageLayer.ActiveStyleNames.Add("default"); wmsImageLayer.Exceptions = "application/vnd.ogc.se_xml"; // Add the layer to the overlay. staticOverlay.Layers.Add("wmsImageLayer", wmsImageLayer); }
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 InitializeWmsRasterLayer() { wmsRasterLayer = new WmsRasterLayer(new Uri(wmsServerUrl, UriKind.Absolute)); wmsRasterLayer.UpperThreshold = double.MaxValue; wmsRasterLayer.LowerThreshold = double.MinValue; }
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"); } }