【geotools】ReprojectingFeatureCollection坐标转换异常

在使用ReprojectingFeatureCollection进行坐标系转换时,出现

Error occured transforming MULTIPOLYGON;

Caused by: org.geotools.referencing.operation.projection.ProjectionException: Latitude 90°00.0'N is too close to a pole.

这样的错误

内部debug时,发现transform时,出现了经纬度坐标翻转的问题.

解决: ReprojectingFeatureCollection参数的CRS必须强制第一位为经度.
例如:

ReprojectingFeatureCollection features3857 = new ReprojectingFeatureCollection(featureCollection,
			CRS.decode("epsg:4490"
GeoTools是一个强大的开源Java库,它主要用于地理空间数据处理、分析和可视化。当你提到"AB坐标",这似乎不是一个标准的坐标系统,可能是某个特定项目或应用中的自定义坐标系。在GeoTools中,如果你需要进行坐标转换,通常是指从一种投影(如WGS84经纬度坐标)转换到另一种,例如UTM、Web Mercator等常见的地图投影。 GeoTools提供了`org.geotools.referencing`包下的` CRS` (Coordinate Reference System) 类和相关的工具类来进行坐标系统的转换。你可以通过创建`CRS`对象并指定源和目标坐标系,然后使用` CoordinateOperation`类的`transform`方法来完成转换。 以下是一个简单的示例: ```java import org.geotools.geometry.jts.Coordinate; import org.opengis.referencing.crs.CoordinateReferenceSystem; import org.opengis.referencing.operation.MathTransform; // 假设sourceCRS是WGS84,targetCRS是UTM Zone 30N CoordinateReferenceSystem sourceCRS = ...; // 获取WGS84坐标系 CoordinateReferenceSystem targetCRS = ...; // 获取UTM 30N坐标系 // 创建坐标操作 MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS); // 原始坐标点 Coordinate originalCoord = new Coordinate(..., ..., ...); // 转换坐标 Coordinate transformedCoord = new Coordinate(); transform.transform(originalCoord, transformedCoord); ``` 请注意,实际使用时需要确保你有正确的坐标参考系统对象,并且如果坐标转换涉及到复杂的投影转换,可能需要使用更高级的功能,比如`GeodeticCalculator`或`TransformationFactory`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qlanto

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值