public RasterDefinitionCtrl(WmsConfigurationDocument config, RasterWmsItem item, IEditorService edsvc) { InitializeComponent(); cmbBackground.ResetColors(); _config = config; _fs = (IFeatureSource)edsvc.GetEditedResource(); _item = item; _edsvc = edsvc; txtImageFormat.Text = item.ImageFormat; chkTransparent.Checked = item.IsTransparent; cmbBackground.CurrentColor = item.BackgroundColor; txtElevation.Text = item.ElevationDimension; txtEpsg.Text = item.SpatialContextName; txtTime.Text = item.Time; txtImageFormat.TextChanged += (s, e) => { item.ImageFormat = txtImageFormat.Text; }; chkTransparent.CheckedChanged += (s, e) => { item.IsTransparent = chkTransparent.Checked; }; cmbBackground.SelectedIndexChanged += (s, e) => { item.BackgroundColor = cmbBackground.CurrentColor; }; txtElevation.TextChanged += (s, e) => { item.ElevationDimension = txtElevation.Text; }; txtEpsg.TextChanged += (s, e) => { item.SpatialContextName = txtEpsg.Text; }; txtTime.TextChanged += (s, e) => { item.Time = txtTime.Text; }; List <string> names = new List <string>(); foreach (var layer in item.Layers) { names.Add(layer.Name); } txtLayers.Lines = names.ToArray(); lnkUpdate.Enabled = false; }
public WmsAdvancedConfigurationDialog(IEditorService service) { InitializeComponent(); grdSpatialContexts.AutoGenerateColumns = false; _service = service; _fs = (IFeatureSource)_service.GetEditedResource(); txtFeatureServer.Text = _fs.GetConnectionProperty("FeatureServer"); //NOXLATE string xml = _fs.GetConfigurationContent(service.CurrentConnection); if (!string.IsNullOrEmpty(xml)) { try { _config = (WmsConfigurationDocument)ConfigurationDocument.LoadXml(xml); } catch (Exception ex) { MessageBox.Show(string.Format(Strings.ErrorLoadingWmsConfig, ex.Message), Strings.TitleError, MessageBoxButtons.OK, MessageBoxIcon.Error); MakeDefaultDocument(); } } else { MakeDefaultDocument(); } lstFeatureClasses.DataSource = _config.RasterOverrides; grdSpatialContexts.DataSource = _config.SpatialContexts; }
private void MakeDefaultDocument() { try { _config = (WmsConfigurationDocument)_service.CurrentConnection.FeatureService.GetSchemaMapping("OSGeo.WMS", _fs.ConnectionString); //NOXLATE foreach (var sc in _config.SpatialContexts) { if (sc.Name.StartsWith("EPSG:")) { var tokens = sc.Name.Split(':'); try { sc.CoordinateSystemWkt = _service.CurrentConnection.CoordinateSystemCatalog.ConvertEpsgCodeToWkt(tokens[1]); } catch { } } } string defaultScName = _config.GetDefaultSpatialContext(_fs, _service.CurrentConnection); _config.EnsureRasterProperties(defaultScName); _config.EnsureConsistency(); } catch { _config = BuildDefaultWmsDocument(); } }
private void MakeDefaultDocument() { try { _config = (WmsConfigurationDocument)_service.CurrentConnection.FeatureService.GetSchemaMapping("OSGeo.WMS", _fs.ConnectionString); //NOXLATE string defaultScName = _config.GetDefaultSpatialContext(_fs, _service.CurrentConnection); _config.EnsureRasterProperties(defaultScName); _config.EnsureConsistency(); } catch { _config = BuildDefaultWmsDocument(); } }
private WmsConfigurationDocument BuildDefaultWmsDocument() { var doc = new WmsConfigurationDocument(); var contexts = _service.CurrentConnection.FeatureService.GetSpatialContextInfo(_fs.ResourceID, false); var schemaName = _service.CurrentConnection.FeatureService.GetSchemas(_fs.ResourceID)[0]; var clsNames = _service.CurrentConnection.FeatureService.GetClassNames(_fs.ResourceID, schemaName); var schema = new FeatureSchema(schemaName, string.Empty); doc.AddSchema(schema); foreach (var sc in contexts.SpatialContext) { doc.AddSpatialContext(sc); } var defaultSc = contexts.SpatialContext[0]; foreach (var clsName in clsNames) { var className = clsName.Split(':')[1]; //NOXLATE var cls = new ClassDefinition(className, string.Empty); cls.AddProperty(new DataPropertyDefinition("Id", string.Empty) //NOXLATE { DataType = DataPropertyType.String, Length = 256, IsNullable = false }, true); cls.AddProperty(new RasterPropertyDefinition("Image", string.Empty) //NOXLATE { DefaultImageXSize = 1024, DefaultImageYSize = 1024, SpatialContextAssociation = defaultSc.Name }); schema.AddClass(cls); var item = CreateDefaultItem(schema.Name, cls.Name, "Image", defaultSc); //NOXLATE doc.AddRasterItem(item); } return(doc); }
public void TestWmsSaveLoad() { var conf = new WmsConfigurationDocument(); var schema = new FeatureSchema("WMS", "WMS Test Schema"); var cls = new ClassDefinition("NASAWMSGlobalPan", "WMS Test Class"); cls.AddProperty(new DataPropertyDefinition("Id", "ID Property") { DataType = DataPropertyType.String, Length = 256, IsNullable = false }, true); cls.AddProperty(new RasterPropertyDefinition("Image", "Raster Property") { DefaultImageXSize = 800, DefaultImageYSize = 800 }); schema.AddClass(cls); conf.AddSchema(schema); var item = new RasterWmsItem(schema.Name, cls.Name, "Image"); item.ImageFormat = RasterWmsItem.WmsImageFormat.PNG; item.IsTransparent = true; item.BackgroundColor = ColorTranslator.FromHtml("#FFFFFF"); item.Time = "current"; item.ElevationDimension = "0"; item.SpatialContextName = "EPSG:4326"; for (int i = 0; i < 5; i++) { item.AddLayer(new WmsLayerDefinition("Layer" + i)); } conf.AddRasterItem(item); string path = "WmsConfigTest.xml"; Utils.WriteAllText(path, conf.ToXml()); conf = null; string xml = Utils.ReadAllText(path); conf = ConfigurationDocument.LoadXml(xml) as WmsConfigurationDocument; Assert.NotNull(conf); Assert.AreEqual(1, conf.RasterOverrides.Length); var ritem = conf.RasterOverrides[0]; cls = conf.GetClass("WMS", "NASAWMSGlobalPan"); Assert.NotNull(cls); Assert.NotNull(cls.Parent); Assert.AreEqual("WMS", cls.Parent.Name); Assert.AreEqual("WMS Test Schema", cls.Parent.Description); Assert.AreEqual("NASAWMSGlobalPan", cls.Name); Assert.AreEqual("WMS Test Class", cls.Description); var prop = cls.FindProperty("Id"); Assert.NotNull(prop); Assert.AreEqual("Id", prop.Name); Assert.AreEqual("ID Property", prop.Description); prop = cls.FindProperty("Image"); Assert.NotNull(prop); Assert.AreEqual("Image", prop.Name); Assert.AreEqual("Raster Property", prop.Description); Assert.AreEqual(item.ImageFormat, ritem.ImageFormat); Assert.AreEqual(item.IsTransparent, ritem.IsTransparent); Assert.AreEqual(item.BackgroundColor, ritem.BackgroundColor); Assert.AreEqual(item.Time, ritem.Time); Assert.AreEqual(item.ElevationDimension, ritem.ElevationDimension); Assert.AreEqual(item.SpatialContextName, ritem.SpatialContextName); Assert.AreEqual(5, item.Layers.Length); }