最近碰到一個需求,需要根據兩個點的經緯度查詢兩點的距離。感覺以后還會用到,所以小記一波。
第一步:添加Maven依賴。
<dependency> <groupId>org.gavaghan</groupId> <artifactId>geodesy</artifactId> <version>1.1.3</version> </dependency>
第二步:代碼實現。
public class DistanceUtil { public static void main(String[] args) { System.out.println("經緯度距離計算結果:" + getDistance(109.371319, 22.155406, 108.009758, 21.679011) + "米"); } public static double getDistance(double longitudeFrom, double latitudeFrom, double longitudeTo, double latitudeTo) { GlobalCoordinates source = new GlobalCoordinates(latitudeFrom, longitudeFrom); GlobalCoordinates target = new GlobalCoordinates(latitudeTo, longitudeTo); return new GeodeticCalculator().calculateGeodeticCurve(Ellipsoid.Sphere, source, target).getEllipsoidalDistance(); } }
代碼運行結果:
對比百度地圖開放平台計算結果:
誤差范圍在0.1米內。
參考:https://www.cnblogs.com/xuzhw/archive/2018/12/19/10143626.html