网站运营与管理的含义,谷歌网站地图,茂名放心营销网站开发,建设商城网站公司百度百科最近在做经纬度相关的需求#xff0c;遇到了2个需求。 1、根据2个经纬度计算之间的距离 2、根据1个经纬度#xff0c;一个距离#xff0c;求另一个经纬度 我找了好久#xff0c;没有发现能用的api#xff0c;高德官方貌似也没有给java的工具文档#xff0c;希望官方能支持…最近在做经纬度相关的需求遇到了2个需求。 1、根据2个经纬度计算之间的距离 2、根据1个经纬度一个距离求另一个经纬度 我找了好久没有发现能用的api高德官方貌似也没有给java的工具文档希望官方能支持一下这些工具文档。 最后在github上找到了一个开源的依赖满足了以上需求分享一下。 文章目录 1、开源依赖2、根据2个经纬度计算之间的距离3、根据一个经纬度和一个距离计算另一个经纬度4、测试方法 1、开源依赖
dependencygroupIdorg.gavaghan/groupIdartifactIdgeodesy/artifactIdversion1.1.3/version/dependency2、根据2个经纬度计算之间的距离
public GeodeticCurve calculateGeodeticCurve(Ellipsoid ellipsoid, GlobalCoordinates start, GlobalCoordinates end)
3、根据一个经纬度和一个距离计算另一个经纬度
public GlobalCoordinates calculateEndingGlobalCoordinates(Ellipsoid ellipsoid, GlobalCoordinates start, double startBearing, double distance)
4、测试方法 /*** 根据两个经纬度计算距离*/GlobalCoordinates globalCoordinatesStart new GlobalCoordinates(Double.valueOf(58.742709),Double.valueOf(124.332468));GlobalCoordinates globalCoordinatesEnd new GlobalCoordinates(Double.valueOf(57.753468),Double.valueOf(123.33221));GeodeticCalculator geodeticCalculator new GeodeticCalculator();//第一个参数:按照球形计算经纬度GeodeticCurve geodeticCurve geodeticCalculator.calculateGeodeticCurve(Ellipsoid.Sphere, globalCoordinatesStart, globalCoordinatesEnd);System.out.println(geodeticCurve);输出:s124598.1568933754;a12208.44376950760167;a2127.593177776351546;第一个参数sxxx就是距离,单位:米/*** 根据一个经纬度,一个距离,计算另一个经纬度*/GlobalCoordinates globalCoordinatesSource new GlobalCoordinates(Double.valueOf(60.742709),Double.valueOf(120.332468));//单位:米double distince 1000.0;//第一个参数:按照球形计算经纬度//第三个参数:角度。0度:正北,90度:正东,180度:正南,270度:正西,其实意思就是:我们要计算哪个方向的经纬度GlobalCoordinates globalCoordinatesDest geodeticCalculator.calculateEndingGlobalCoordinates(Ellipsoid.Sphere, globalCoordinatesSource, Double.valueOf(90.0), distince);System.out.println(globalCoordinatesDest);输出:60.74270774009179N;120.35086910931813E;第一个是纬度,第二个是经度