创建地理工具对象时如何使用特定CRS



我在围绕对象(线(创建地理工具缓冲区时遇到了问题,所有对象看起来都是弯曲的,我认为这是因为CRS的差异在缓冲区上非常明显。我想我可能需要设置我的应用程序正在使用的CRS,我希望它是EPSG:4326,但我不知道该怎么做。


阅读地理工具指南我看到了如何通过转换知道以前使用的CRS的例子,但我只能获得SRID代码,而不能获得CRS。任何帮助都是


在下面显示的代码中,我试图在一条线上构造缓冲区,并获得不同半径上缓冲区的坐标。它运行得很好,但在地图上看起来确实不均匀。我还尝试创建指定SRID的几何工厂,假设int代码与CRS中的代码相同,无论如何,在不同的工厂中显示坐标都没有区别

GeometryFactory geometryFactory = new GeometryFactory(new PrecisionModel(), 4326);
GeometryFactory factory = JTSFactoryFinder.getGeometryFactory();
LineString lineString = geometryFactory.createLineString(mapCoords(pipeline));
for (double radius : radiuses){
Coordinate[] coordinates = lineString.buffer(radius).getCoordinates();
List<Point> points = mapPoints(coordinates);
radiusesPoints.add(points);
}

因此,正如评论中所说,由于无法在同一对象上获取Coordinates和getCoordinateReferenceSystem,我使用了一种变通方法,即基本上使用postgresql函数来做同样的事情,但在db请求级别。这个任务不久前就解决了,但如果你想在评论中看到一个解决方案标记我,我会为你找到数据库请求

最新更新