【发布时间】:2016-08-29 12:06:28
【问题描述】:
我在使用 Geo Tiff 对图像进行矢量化时遇到错误
//vectorization
System.out.println("vectorization starts");
GridCoverage2D srcCoverage = new GeoTiffReader(new File("E:/output/sometiffile.TIFF")).read(new GeneralParameterValue[]{policy, gridsize, useJaiRead});
SimpleFeatureCollection fc = RasterToVectorProcess.process(srcCoverage, 0, cov.getEnvelope(), Collections.singletonList(0.0d), true, null);
System.out.println("process ends");
MapContext map = new DefaultMapContext();
map.setTitle("raster to vector conversion");
Style style = SLD.createPolygonStyle(Color.BLUE, Color.CYAN, 1.0f);
map.addLayer(fc, style);
JMapFrame.showMap(map);
System.out.println("vectorization ends");
输出
vectorization starts
adding...
adding...
adding...
adding...
adding...
adding...
adding...
Exception in thread "main" org.geotools.process.ProcessException: java.lang.IllegalStateException: Can't locate interior point for polygon
at org.geotools.process.raster.RasterToVectorProcess.convert(RasterToVectorProcess.java:385)
at org.geotools.process.raster.RasterToVectorProcess.process(RasterToVectorProcess.java:310)
at com.rgb.PixelExtractor.extract(PixelExtractor.java:347)
at com.rgb.RGBSpliter.main(RGBSpliter.java:92)
Caused by: java.lang.IllegalStateException: Can't locate interior point for polygon
at org.geotools.process.raster.RasterToVectorProcess.assembleFeatures(RasterToVectorProcess.java:452)
at org.geotools.process.raster.RasterToVectorProcess.convert(RasterToVectorProcess.java:380)
... 3 more
【问题讨论】:
-
看起来您的图像包含一些太小的特征。大胆猜测:尝试减小网格大小。
-
我把重复的链接@DenisKurochkin 反转了,因为这个至少有一个答案,而另一个没有活动。
-
我需要删除那个问题,因为 Proces 的 '' 例外中的 ''s''e''x。我的代理服务器说该页面被禁止。