如何在 OpenShift 中访问 shapefile
How to access shapefiles in OpenShift
我的 jar 中有 shapefile,它部署在 OpenShift 中。我可以使用“File sourceFile = new ClassPathResource(src/main/resources/CountryBoundaries.shp).getFile();”从我的本地环境访问这些文件。但是,在 OpenShift 中,我的服务抱怨它不能找到它。我试过 InputStream 但我在 IDE 中收到错误,因为该文件不是文本文件。下面是我的代码:
File sourceFile = new ClassPathResource("src/main/resources/CountryBoundaries.shp").getFile();
FileDataStore store = FileDataStoreFinder.getDataStore(sourceFile);
featureSource = store.getFeatureSource();
GeometryDescriptor geomDesc = featureSource.getSchema().getGeometryDescriptor();
attrName = geomDesc.getLocalName();
我错过了什么?我会很感激任何帮助,因为我已经为此苦苦挣扎了很长一段时间。谢谢
我通过将 URL 更改为 URI 然后执行 toURL() 找到了解决方案。见下文:
URI sourceFile = new ClassPathResource("PoliticalSubdivisionBoundaries.shp").getURI();
FileDataStore store = FileDataStoreFinder.getDataStore(sourceFile.toURL());
featureSource = store.getFeatureSource();
GeometryDescriptor geomDesc = featureSource.getSchema().getGeometryDescriptor();
attrName = geomDesc.getLocalName();
希望这对以后的人有所帮助。 Shapefile 很复杂,不能像使用 inputStream 那样以通常的方式访问。干杯!
我的 jar 中有 shapefile,它部署在 OpenShift 中。我可以使用“File sourceFile = new ClassPathResource(src/main/resources/CountryBoundaries.shp).getFile();”从我的本地环境访问这些文件。但是,在 OpenShift 中,我的服务抱怨它不能找到它。我试过 InputStream 但我在 IDE 中收到错误,因为该文件不是文本文件。下面是我的代码:
File sourceFile = new ClassPathResource("src/main/resources/CountryBoundaries.shp").getFile();
FileDataStore store = FileDataStoreFinder.getDataStore(sourceFile);
featureSource = store.getFeatureSource();
GeometryDescriptor geomDesc = featureSource.getSchema().getGeometryDescriptor();
attrName = geomDesc.getLocalName();
我错过了什么?我会很感激任何帮助,因为我已经为此苦苦挣扎了很长一段时间。谢谢
我通过将 URL 更改为 URI 然后执行 toURL() 找到了解决方案。见下文:
URI sourceFile = new ClassPathResource("PoliticalSubdivisionBoundaries.shp").getURI();
FileDataStore store = FileDataStoreFinder.getDataStore(sourceFile.toURL());
featureSource = store.getFeatureSource();
GeometryDescriptor geomDesc = featureSource.getSchema().getGeometryDescriptor();
attrName = geomDesc.getLocalName();
希望这对以后的人有所帮助。 Shapefile 很复杂,不能像使用 inputStream 那样以通常的方式访问。干杯!