java 将坐标点转为经纬度
时间: 2024-05-12 17:17:16 浏览: 188
要将坐标点转为经纬度,你需要知道该坐标点所在的投影方式和坐标系。一般情况下,我们使用的是WGS84坐标系和经纬度表示方式。同时,你需要使用Java中的一些地理信息库,如proj4库、geotools库等。具体步骤可以参照下面的代码:
```
import org.geotools.geometry.DirectPosition2D;
import org.geotools.referencing.crs.DefaultGeographicCRS;
import org.geotools.referencing.crs.DefaultProjectedCRS;
import org.geotools.referencing.crs.DefaultVerticalCRS;
import org.geotools.referencing.operation.DefaultMathTransformFactory;
import org.opengis.geometry.DirectPosition;
import org.opengis.referencing.FactoryException;
import org.opengis.referencing.NoSuchAuthorityCodeException;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
import org.opengis.referencing.operation.MathTransform;
import org.opengis.referencing.operation.MathTransformFactory;
public class PointConverter {
public static void convert(double x, double y) throws NoSuchAuthorityCodeException, FactoryException {
CoordinateReferenceSystem sourceCRS = DefaultProjectedCRS.WGS84_UTM(50, true);
CoordinateReferenceSystem targetCRS = DefaultGeographicCRS.WGS84;
MathTransformFactory mathTransformFactory = new DefaultMathTransformFactory();
MathTransform transform = mathTransformFactory.createTransform(sourceCRS, targetCRS);
DirectPosition sourcePt = new DirectPosition2D(sourceCRS, x, y);
DirectPosition targetPt = transform.transform(sourcePt, null);
System.out.println("Longitude: " + targetPt.getOrdinate(0));
System.out.println("Latitude: " + targetPt.getOrdinate(1));
}
}
```
其中x和y分别表示坐标点的横纵坐标。该代码假设输入的坐标点所在的投影方式为WGS84 UTM(50),并将其转换为经纬度。注意,该代码需要使用geotools库,需要在项目中添加该库的依赖,并且需要处理可能出现的异常。
阅读全文