根据经纬度计算两点之间距离
引入java包
<dependency>
<groupId>org.gavaghan</groupId>
<artifactId>geodesy</artifactId>
<version>1.1.3</version>
</dependency>
代码
import org.gavaghan.geodesy.Ellipsoid;
import org.gavaghan.geodesy.GeodeticCalculator;
import org.gavaghan.geodesy.GeodeticCurve;
import org.gavaghan.geodesy.GlobalCoordinates;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public class DistanceUtils {
/**
* 计算俩个坐标点之间的距离
*
* @param point1 起点坐标
* @param point2 终点坐标
* @return 返回单位(米)
*/
public static double getDistance(DealerShip point1, DealerShip point2) {
GlobalCoordinates source = new GlobalCoordinates(Double.parseDouble(point2.getDealerShipLat()), Double.parseDouble(point2.getDealerShipLon()));
GlobalCoordinates target = new GlobalCoordinates(Double.parseDouble(point1.getDealerShipLat()), Double.parseDouble(point1.getDealerShipLon()));
GeodeticCurve geoCurve = new GeodeticCalculator().calculateGeodeticCurve(Ellipsoid.Sphere,source, target);
return geoCurve.getEllipsoidalDistance();
}
public static void main(String[] args) {
DealerShip dealerShip1=new DealerShip();
dealerShip1.setDealerShipLon("87.606066");
dealerShip1.setDealerShipLat("43.855663");
DealerShip dealerShip2=new DealerShip();
dealerShip2.setDealerShipLon("117.179908");
dealerShip2.setDealerShipLat("39.087325");
getDistance(dealerShip1,dealerShip2);
}
}