方法一: /// <summary>
/// 导入KML
/// </summary>
/// <param name="swmName">工作空间名称</param>
/// <param name="strDsName">数据源名称</param>
/// <param name="strTargetName">导入后的文件名称</param>
/// <param name="strFileName">导入文件名称</param>
public void ImportKML(string swmName, string strDsName, string strTargetName, string strFileName)
{
mWorkspace = new SuperMap.Data.Workspace();
mMapControl = new SuperMap.UI.MapControl(mWorkspace);
WorkspaceConnectionInfo connectionInfo = new WorkspaceConnectionInfo(swmName);
bool ret = mWorkspace.Open(connectionInfo);
mMapControl.Map.Workspace = mWorkspace;
objDss = mWorkspace.Datasources;
objDs = objDss[strDsName];
DataImport mDataImport = new DataImport();
ImportSettingKML Import = new ImportSettingKML();
Import.ImportMode = ImportMode.Overwrite;
Import.SourceFilePath = strFileName;
Import.TargetDatasource = objDs;
ImportDataInfos dataInfos = Import.GetTargetDataInfos("");
ImportDataInfo info = dataInfos[0];
info.TargetName = strTargetName;
Import.SetTargetDataInfos(dataInfos);
mDataImport.ImportSettings.Add(Import);
mDataImport.Run();
mWorkspace.Save();
}
--------------------------------------------------------------------
方法二:
/// <summary>
/// 导入KMZ
/// </summary>
/// <param name="swmName">工作空间名称</param>
/// <param name="strDsName">数据源名称</param>
/// <param name="strTargetName">导入后的文件名称</param>
/// <param name="strFileName">导入文件名称</param>
public void ImportKMZ(string swmName, string strDsName, string strTargetName, string strFileName)
{
mWorkspace = new SuperMap.Data.Workspace();
mMapControl = new SuperMap.UI.MapControl(mWorkspace);
WorkspaceConnectionInfo connectionInfo = new WorkspaceConnectionInfo(swmName);
bool ret = mWorkspace.Open(connectionInfo);
mMapControl.Map.Workspace = mWorkspace; objDss = mWorkspace.Datasources;
objDs = objDss[strDsName];
DataImport mDataImport = new DataImport();
ImportSettingKMZ Import = new ImportSettingKMZ();
Import.ImportMode = ImportMode.Overwrite;
Import.SourceFilePath = strFileName;
Import.TargetDatasource = objDs;
ImportDataInfos dataInfos = Import.GetTargetDataInfos("");
ImportDataInfo info = dataInfos[0];
info.TargetName = strTargetName;
Import.SetTargetDataInfos(dataInfos);
mDataImport.ImportSettings.Add(Import);
mDataImport.Run();
mWorkspace.Save();
}
------------------------------------------------------两个方法唯一不同的地方是:
方法一:ImportSettingKML Import = new ImportSettingKML();
方法二:ImportSettingKMZ Import = new ImportSettingKMZ();请问如何抽象?望高手指教。
/// 导入KML
/// </summary>
/// <param name="swmName">工作空间名称</param>
/// <param name="strDsName">数据源名称</param>
/// <param name="strTargetName">导入后的文件名称</param>
/// <param name="strFileName">导入文件名称</param>
public void ImportKML(string swmName, string strDsName, string strTargetName, string strFileName)
{
mWorkspace = new SuperMap.Data.Workspace();
mMapControl = new SuperMap.UI.MapControl(mWorkspace);
WorkspaceConnectionInfo connectionInfo = new WorkspaceConnectionInfo(swmName);
bool ret = mWorkspace.Open(connectionInfo);
mMapControl.Map.Workspace = mWorkspace;
objDss = mWorkspace.Datasources;
objDs = objDss[strDsName];
DataImport mDataImport = new DataImport();
ImportSettingKML Import = new ImportSettingKML();
Import.ImportMode = ImportMode.Overwrite;
Import.SourceFilePath = strFileName;
Import.TargetDatasource = objDs;
ImportDataInfos dataInfos = Import.GetTargetDataInfos("");
ImportDataInfo info = dataInfos[0];
info.TargetName = strTargetName;
Import.SetTargetDataInfos(dataInfos);
mDataImport.ImportSettings.Add(Import);
mDataImport.Run();
mWorkspace.Save();
}
--------------------------------------------------------------------
方法二:
/// <summary>
/// 导入KMZ
/// </summary>
/// <param name="swmName">工作空间名称</param>
/// <param name="strDsName">数据源名称</param>
/// <param name="strTargetName">导入后的文件名称</param>
/// <param name="strFileName">导入文件名称</param>
public void ImportKMZ(string swmName, string strDsName, string strTargetName, string strFileName)
{
mWorkspace = new SuperMap.Data.Workspace();
mMapControl = new SuperMap.UI.MapControl(mWorkspace);
WorkspaceConnectionInfo connectionInfo = new WorkspaceConnectionInfo(swmName);
bool ret = mWorkspace.Open(connectionInfo);
mMapControl.Map.Workspace = mWorkspace; objDss = mWorkspace.Datasources;
objDs = objDss[strDsName];
DataImport mDataImport = new DataImport();
ImportSettingKMZ Import = new ImportSettingKMZ();
Import.ImportMode = ImportMode.Overwrite;
Import.SourceFilePath = strFileName;
Import.TargetDatasource = objDs;
ImportDataInfos dataInfos = Import.GetTargetDataInfos("");
ImportDataInfo info = dataInfos[0];
info.TargetName = strTargetName;
Import.SetTargetDataInfos(dataInfos);
mDataImport.ImportSettings.Add(Import);
mDataImport.Run();
mWorkspace.Save();
}
------------------------------------------------------两个方法唯一不同的地方是:
方法一:ImportSettingKML Import = new ImportSettingKML();
方法二:ImportSettingKMZ Import = new ImportSettingKMZ();请问如何抽象?望高手指教。
/// 导入KML
/// </summary>
/// <param name="swmName">工作空间名称</param>
/// <param name="strDsName">数据源名称</param>
/// <param name="strTargetName">导入后的文件名称</param>
/// <param name="strFileName">导入文件名称</param>
/// <param name="Import">new ImportSettingKML()或者new ImportSettingKMZ(),如果继承自某个接口最好用接口</param>
public void ImportKML(string swmName, string strDsName, string strTargetName, string strFileName,dynamic Import)
{
mWorkspace = new SuperMap.Data.Workspace();
mMapControl = new SuperMap.UI.MapControl(mWorkspace);
WorkspaceConnectionInfo connectionInfo = new WorkspaceConnectionInfo(swmName);
bool ret = mWorkspace.Open(connectionInfo);
mMapControl.Map.Workspace = mWorkspace;
objDss = mWorkspace.Datasources;
objDs = objDss[strDsName];
DataImport mDataImport = new DataImport();
Import.ImportMode = ImportMode.Overwrite;
Import.SourceFilePath = strFileName;
Import.TargetDatasource = objDs;
ImportDataInfos dataInfos = Import.GetTargetDataInfos("");
ImportDataInfo info = dataInfos[0];
info.TargetName = strTargetName;
Import.SetTargetDataInfos(dataInfos);
mDataImport.ImportSettings.Add(Import);
mDataImport.Run();
mWorkspace.Save();
}