我有一个类型为(com.vividsolutions.jts.geom.Geometry)的几何对象。它目前是经度,纬度形式,我想翻转坐标,使其经度为纬度,这样我就可以将其以GeoJSON格式用于mongodb。
我看到的约束是:a)我想翻转坐标的输入是Geometry对象。b)几何对象将是多边形类型或多多边形。c)我想在将类型强制转换为Polygon / multipolygon之前翻转坐标
我已经尝试过geo.reverse(),但是它不起作用。
同样,我尝试使用:CRSAuthorityFactory factory = CRS.getAuthorityFactory(true); CoordinateReferenceSystem crs = factory.createCoordinateReferenceSystem(“ EPSG:4326”);
和另一个选择,我没有看到它的工作。
谢谢!
一种可能的解决方案是扩展类,以提供一个附加功能,该功能可以通过一些便捷的方式输出所需的数据:
public Coordinate[] getReversedCoordinates(){ Coordinate[] original = this.getCoordinates(); Coordinate[] ret = new Coordinate[original.length]; for(int i =0; i<original.length; i++){ ret[i] = new Coordinate( original[i].x , original[i].y ); } return ret; }
或者,您可以更改数据的解释。我很难为您提供一个代码段,因为我不确定您是如何使用这些信息的。
编辑:
一旦有了反向坐标,就可以创建线性环类型的重复几何。一种方法是使用工厂使用几何工厂:
GeometryFactory gf = //However this was instantiated; Coordinate[] reversedCoordinates = getReversedCoordinates(); gf.createLinearRing(reversedCoordinates);
祝您编程愉快,如有任何疑问,请留下评论!