50,530
社区成员
发帖
与我相关
我的任务
分享
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();
}
}
在,大佬有问题请教你