package com.supermap.realestate.registration.test;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import com.supermap.data.Charset;
import com.supermap.data.CursorType;
import com.supermap.data.DatasetType;
import com.supermap.data.DatasetVector;
import com.supermap.data.DatasetVectorInfo;
import com.supermap.data.Datasets;
import com.supermap.data.Datasource;
import com.supermap.data.DatasourceConnectionInfo;
import com.supermap.data.EncodeType;
import com.supermap.data.EngineType;
import com.supermap.data.Recordset;
import com.supermap.data.Workspace;
import com.supermap.data.conversion.DataImport;
import com.supermap.data.conversion.ImportMode;
import com.supermap.data.conversion.ImportResult;
import com.supermap.data.conversion.ImportSettingSHP;
import com.supermap.wisdombusiness.framework.dao.impl.CommonDao;
public class test implements tests
{
@Autowired
private CommonDao baseCommonDao;
@Override
public String addShape()
{
String path = "C:\\Users\\Administrator\\Desktop\\SHP\\SHP.shp";
Workspace workspace = new Workspace();
DatasourceConnectionInfo info = new DatasourceConnectionInfo();
info.setEngineType(EngineType.ORACLEPLUS);
info.setServer("ORCLHYDJ");
info.setDatabase("BDCK");
info.setUser("BDCK");
info.setPassword("salis");
info.setAlias("BDCK");
// 打开数据源
Datasource datasource = workspace.getDatasources().open(info);
if (datasource == null) {
System.out.println("打开数据源失败");
return "";
} else {
System.out.println("数据源打开成功!");
//创建临时数据集
Datasets datasets = datasource.getDatasets();
boolean flag = datasets.delete("temp_shape");
String name = datasets.getAvailableDatasetName("temp_shape");
// 设置矢量数据集的信息
DatasetVectorInfo datasetVectorInfo = new DatasetVectorInfo();
datasetVectorInfo.setType(DatasetType.REGION);
datasetVectorInfo.setEncodeType(EncodeType.NONE);
datasetVectorInfo.setFileCache(true);
datasetVectorInfo.setName(name);
System.out.println("临时数据集的信息为:" + datasetVectorInfo.toString());
DatasetVector dv_temp = datasets.create(datasetVectorInfo);
//dv_temp.close();
//导入到指定数据源的数据集中
ImportSettingSHP importSettingSHP = new ImportSettingSHP();
importSettingSHP.setAttributeIgnored(false);
//设置当同名数据集存在时导入的模式,如果存在名字冲突,则覆盖
importSettingSHP.setImportMode(ImportMode.OVERWRITE);
//设置需要导入的数据路径信息
importSettingSHP.setSourceFilePath(path);
//设置需要导入的数据编码类型,因为有中文字段,所以用ASCII编码
importSettingSHP.setSourceFileCharset(Charset.ANSI);
//设置要导入的目标数据源
importSettingSHP.setTargetDatasource(datasource);
//设置目标数据集名称
importSettingSHP.setTargetDatasetName(name);
DataImport importer = new DataImport();
importer.getImportSettings().add(importSettingSHP);
ImportResult result = importer.run();
if (result.getFailedSettings().length == 0)
{
System.out.println("导入成功!");
}
// 释放资源
datasetVectorInfo.dispose();
}
// 释放工作空间资源
info.dispose();
workspace.dispose();
//查询临时表名
String sql = "select SMTABLENAME from SMREGISTER where SMDATASETNAME = 'temp_shape'";
String temp_name = "";
List<Map> zllist =baseCommonDao.getDataListByFullSql(sql);
if (zllist != null && zllist.size() > 0) {
Map mapzl = zllist.get(0);
temp_name = mapzl.get("SMTABLENAME").toString();
}
return temp_name;
}
}