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 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(); } } }