You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							87 lines
						
					
					
						
							3.1 KiB
						
					
					
				
			
		
		
	
	
							87 lines
						
					
					
						
							3.1 KiB
						
					
					
				using ESRI.ArcGIS.Geodatabase; | 
						|
using KGIS.Plugin.LayerProperty.Enum; | 
						|
using KGIS.Plugin.LayerProperty.Interface; | 
						|
using System; | 
						|
using System.Collections.Generic; | 
						|
using System.ComponentModel; | 
						|
using System.Linq; | 
						|
using System.Text; | 
						|
using System.Threading.Tasks; | 
						|
using System.Xml.Serialization; | 
						|
 | 
						|
namespace KGIS.Plugin.LayerProperty.Model | 
						|
{ | 
						|
    [Serializable] | 
						|
    internal class LocalRasterPropetry : RasterProperty, IRasterProperty | 
						|
    { | 
						|
        private IRasterDataset m_RasterDataset; | 
						|
        private string m_Folder = string.Empty; | 
						|
        [Browsable(true), Category("数据源"), DisplayName("文件夹"), ReadOnly(true), XmlElement("文件夹")] | 
						|
        public string Folder | 
						|
        { | 
						|
            get | 
						|
            { | 
						|
                return this.m_Folder; | 
						|
            } | 
						|
            set | 
						|
            { | 
						|
                this.m_Folder = value; | 
						|
            } | 
						|
        } | 
						|
        public LocalRasterPropetry() | 
						|
        { | 
						|
        } | 
						|
        public LocalRasterPropetry(IRasterDataset pRasterDataset) | 
						|
        { | 
						|
            base.Init(pRasterDataset); | 
						|
            this.m_RasterDataset = pRasterDataset; | 
						|
            this.getDataSource(); | 
						|
        } | 
						|
        private void getDataSource() | 
						|
        { | 
						|
            IDataset dataset = (IDataset)this.m_RasterDataset; | 
						|
            IWorkspace workspace = dataset.Workspace; | 
						|
            if (workspace.Type == esriWorkspaceType.esriFileSystemWorkspace) | 
						|
            { | 
						|
                this.RasterType = enumRasterDataType.RDTFileSystem; | 
						|
                base.DataType = "文件型栅格"; | 
						|
                this.m_Folder = workspace.PathName; | 
						|
                return; | 
						|
            } | 
						|
            if (workspace.Type == esriWorkspaceType.esriLocalDatabaseWorkspace) | 
						|
            { | 
						|
                this.RasterType = enumRasterDataType.RDTLocalDatabase; | 
						|
                base.DataType = "本地数据库栅格"; | 
						|
                this.m_Folder = workspace.PathName; | 
						|
            } | 
						|
        } | 
						|
        public override void ExportToXML() | 
						|
        { | 
						|
            try | 
						|
            { | 
						|
                //LocalRasterPropetry o = new LocalRasterPropetry(this.m_RasterDataset); | 
						|
                //XmlSerializer xmlSerializer = new XmlSerializer(typeof(LocalRasterPropetry)); | 
						|
                //SaveFileDialog saveFileDialog = new SaveFileDialog(); | 
						|
                //saveFileDialog.Filter = "XML文件(*.xml)|*.xml"; | 
						|
                //saveFileDialog.CheckPathExists = true; | 
						|
                //if (base.Raster.IndexOf(".") > 0) | 
						|
                //{ | 
						|
                //    saveFileDialog.FileName = base.Raster.Substring(0, base.Raster.IndexOf(".")) + ".xml"; | 
						|
                //} | 
						|
                //else | 
						|
                //{ | 
						|
                //    saveFileDialog.FileName = base.Raster + ".xml"; | 
						|
                //} | 
						|
                //if (saveFileDialog.ShowDialog() == DialogResult.OK && saveFileDialog.FileName.Length != 0) | 
						|
                //{ | 
						|
                //    StreamWriter streamWriter = new StreamWriter(saveFileDialog.FileName); | 
						|
                //    xmlSerializer.Serialize(streamWriter, o); | 
						|
                //    streamWriter.Close(); | 
						|
                //} | 
						|
            } | 
						|
            catch (Exception) | 
						|
            { | 
						|
            } | 
						|
        } | 
						|
    } | 
						|
}
 | 
						|
 |