【发布时间】:2018-10-22 17:36:12
【问题描述】:
我正在尝试保存一个可以正常工作的 shapefile,下面是这个问题链接:
Add new column attribute to the shapefile and save it to database using Geotools Java
我面临的问题是 shapefile 的 fileName,它包含一个空格,结果保存为 %20 相当于空间 n db。
例如: New File abc.shp ==> New%20File%20abc (TableName)
我知道我们可以重命名文件路径,但在我的情况下,我想重命名选择的文件,而不是重命名文件系统上的文件。
编辑
使用 Geotools 我使用以下代码来存储 tableName:
File FilePath = new File("/users/New File abc.shp");
FileDataStore ds = FileDataStoreFinder.getDataStore(new File(FilePath.toString()));
SimpleFeatureType schema = ds.getSchema();
// create new schema
SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder();
builder.setName(schema.getName());
builder.setSuperType((SimpleFeatureType) schema.getSuper());
builder.addAll(schema.getAttributeDescriptors());
// build new schema
SimpleFeatureType nSchema = builder.buildFeatureType();
System.out.println("Shapefile table info : " + nSchema);
我有什么方法可以使用 Java 或使用 Geotools 的任何解决方案。我使用的数据库是 PostGIS。
【问题讨论】:
-
这可能是 URL 到文件转换过程的产物,您究竟是如何创建数据存储的
-
@IanTurton 我已经更新了我的问题。我以为我需要更改 nSchema 中的表名,但我看到了架构链接。所以就是做不好
-
对不起,我不清楚。我们需要了解您是如何创建 Shapefile 数据存储的,尽管您仍需要将空格替换为 _ 以使表名有效
-
@IanTurton 我已经更新了完整的代码。包括 shapefile ds。
-
@IanTurton 感谢您的指导,我在 builder.setName(schema.getName().toString().replaceAll("%20", "") 这一行更改了我的代码。全部替换(" ", ""));