java代码如何通过AE将GDB转成shp

hotsaysauce2 2016-04-05 07:02:07
网上资料很少,现在可以连接到ArcgisEngine,也可以把gdb转成shp格式,但是无法解析中文,gdb出现中文的部分转成shp以后是乱码,估计方法用的不对

public static void main(String[] args) {
System.out
.println("Starting BrowseFileGDB - An ArcObjects SDK Developer Sample");

try {
EngineInitializer.initializeEngine();
AoInitialize aoInit = new AoInitialize();
// Initialize ArcGIS license
initializeArcGISLicenses(aoInit);
QueryGDB qb = new QueryGDB();

String inFGDB = "D:\\test.gdb";

FileGDBWorkspaceFactory factory = new FileGDBWorkspaceFactory();
Workspace workspace = new Workspace(factory.openFromFile(inFGDB, 0));
String shapepath = "D:\\LayerData_temp";
File dir = new File(shapepath);

makeDir(dir);

IWorkspaceFactory pFact = new ShapefileWorkspaceFactory();
IWorkspace pOutWorkspace = pFact.openFromFile(shapepath, 0);

IQueryFilter queryFilter = new QueryFilter();

String whereSql = "\"shiCode\"='150000' and \"OBSERVE_TIME\" = \'2016/3/7 11:00:00\'";

queryFilter.setWhereClause(whereSql);

IEnumDataset enumDataset = workspace.getDatasets(esriDatasetType.esriDTFeatureClass);
IDataset ds = enumDataset.next();

FeatureClass featureClass = null;
while (ds != null) {

if(layerName.equals(ds.getName())){
System.out.println(ds.getName());
featureClass = new FeatureClass(ds);

}
ds = enumDataset.next();
}//生成shp文件
qb.ExportToShapefile(featureClass,queryFilter, pOutWorkspace);
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
System.out.println("Sample failed. Exiting...");
e.printStackTrace();
System.exit(-1);
}
private void ExportToShapefile(IFeatureClass pFeatureClass,IQueryFilter queryFilter,
IWorkspace outWorkspace) {
try {
IDataset inDataSet = new IDatasetProxy(pFeatureClass);
IFeatureClassName inFCName = (IFeatureClassName) inDataSet
.getFullName();
IDataset outDataSet = (IDataset) outWorkspace;
IWorkspaceName outWorkspaceName = (IWorkspaceName) outDataSet
.getFullName();
IFeatureClassName outFCName = new FeatureClassName();
IDatasetName dataSetName = (IDatasetName) outFCName;
dataSetName.setWorkspaceNameByRef(outWorkspaceName);
dataSetName.setName(pFeatureClass.getAliasName().toString());
IFeatureDataConverter featureDataConverter = new FeatureDataConverter();

featureDataConverter.convertFeatureClass(inFCName, queryFilter, null,
outFCName, null, null, "", 1000, 0);
} catch (Exception e) {
e.printStackTrace();
}
}
...全文
315 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

在,大佬有问题请教你

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧