阅读完需:约 1 分钟
在项目中可能会遇到需要计算坐标点的距离等,所以我们需要通过这个包来实现。
<dependency>
<groupId>org.gavaghan</groupId>
<artifactId>geodesy</artifactId>
<version>1.1.3</version>
</dependency>
创建一个类并传入所需要的坐标点!
GlobalCoordinates center = new GlobalCoordinates(38.885791,121.858205);
根据两点算距离
/**
* 根据坐标算距离
* @param startLng
* @param startLat
* @param endLng
* @param endLat
* @return
*/
public static double getDistanceMeter(double startLng,double startLat,double endLng,double endLat){
GlobalCoordinates startGlobalCoordinates = new GlobalCoordinates(startLat, startLng);
GlobalCoordinates endGlobalCoordinates = new GlobalCoordinates(endLat, endLng);
GeodeticCurve geoCurve = new GeodeticCalculator().calculateGeodeticCurve(Ellipsoid.WGS84, startGlobalCoordinates, endGlobalCoordinates);
return geoCurve.getEllipsoidalDistance();
}
根据开始点、方向、距离计算结束点
/**
* 根据开始坐标点,角度,计算结束点坐标
* @param startGlobalCoordinates
* @param startAngle
* @param distance
* @return
*/
public static GlobalCoordinates getGlobalCoordinates(GlobalCoordinates startGlobalCoordinates, double startAngle, double distance){
return new GeodeticCalculator().calculateEndingGlobalCoordinates(Ellipsoid.WGS84, startGlobalCoordinates, startAngle, distance);
}