示例#1
0
        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);
        }
示例#6
0
        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);
        }