年度变更建库软件5.0版本
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.

88 lines
3.1 KiB

6 months ago
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)
{
}
}
}
}