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();
        }
Example #2
0
        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);
        }
Example #4
0
        //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));
        }
Example #5
0
        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();
        }
Example #6
0
        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();
        }
Example #8
0
        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();
                }
            }
        }
Example #9
0
 private void InitializeWmsRasterLayer()
 {
     wmsRasterLayer = new WmsRasterLayer(new Uri(wmsServerUrl, UriKind.Absolute));
     wmsRasterLayer.UpperThreshold = double.MaxValue;
     wmsRasterLayer.LowerThreshold = double.MinValue;
 }
Example #10
0
        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");
            }
        }