计算两个经纬度的距离
一 点睛
计算两个经纬度的距离的方法这里提供两种。
1 基于 googleMap 中的算法得到两经纬度之间的距离,计算精度与谷歌地图的距离精度差不多。
2 计算中心经纬度与目标经纬度的距离(米)
二 代码
public class LongitudeLatitude {/*** 默认地球半径*/private static double EARTH_RADIUS = 6371000; // 赤道半径(单位m)public static void main(String[] args) {// 西安double lon = 108.93425; // 当前经度double lat = 34.23053; // 当前纬度// 北京double lon1 = 116.23128;double lat1 = 40.22077;double dist;double dist2;dist = LongitudeLatitude.GetDistance(lon, lat, lon1, lat1);dist2 = LongitudeLatitude.distance(lon, lat, lon1, lat1);System.out.println("西安到北京的距离:" + dist + " 米");System.out.println("西安到北京的距离:" + dist2 + " 米");}/*** 功能描述:计算两个经纬度的距离** @param lon1 第一点的精度* @param lat1 第一点的纬度* @param lon2 第二点的精度* @param lat2 第二点的纬度* @return 返回的距离,单位m* @author cakin* @date 2021/10/30* @description: 基于googleMap中的算法得到两经纬度之间的距离, 计算精度与谷歌地图的距离精度差不多*/public static double GetDistance(double lon1, double lat1, double lon2, double lat2) {double radLat1 = rad(lat1);double radLat2 = rad(lat2);double a = radLat1 - radLat2;double b = rad(lon1) - rad(lon2);double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));s = s * EARTH_RADIUS;s = Math.round(s * 10000) / 10000;return s;}/*** 转化为弧度(rad)*/private static double rad(double d) {return d * Math.PI / 180.0;}/*** 计算中心经纬度与目标经纬度的距离(米)** @param centerLon 中心经度* @param centerLat 中心纬度* @param targetLon 需要计算的经度* @param targetLat 需要计算的纬度* @return 米*/private static double distance(double centerLon, double centerLat, double targetLon, double targetLat) {double jl_jd = 102834.74258026089786013677476285; // 每经度单位米;double jl_wd = 111712.69150641055729984301412873; // 每纬度单位米;double b = Math.abs((centerLat - targetLat) * jl_jd);double a = Math.abs((centerLon - targetLon) * jl_wd);return Math.sqrt((a * a + b * b));}
}
三 测试
西安到北京的距离:927275.0 米
西安到北京的距离:1021746.2661746435 米
四 高德地图测试结果
计算两个经纬度的距离相关推荐
- php经纬度之间的距离计算公式,golang与php实现计算两个经纬度之间距离的方法
本文实例讲述了golang与php实现计算两个经纬度之间距离的方法.分享给大家供大家参考,具体如下: golang版本: package main import ( "fmt" & ...
- C#计算两个经纬度的距离
一.C#计算两个经纬度的距离 //地球半径,单位米private const double EARTH_RADIUS = 6378137;/// <summary>/// 计算两点位置的距 ...
- 两个坐标的距离C语言,计算两个经纬度直线距离 安卓app开发
.Net计算方式 public static class CCalculationGPSCoordinateDistance { private const double dEARTH_RADIUS ...
- 计算两个经纬度的距离_HTML5 地理定位+地图 API:计算用户到商家的距离
51CTO官微 | THEFUTURE|技术成就梦想| 最近在做一个类似支付宝口碑商家的功能模块,其中有个功能就是计算出用户与商家的距离,如下图:支付宝口碑商家页面截图思路分析 1.商家选取店铺地址, ...
- python 计算两个经纬度的距离_python实现两个经纬度点之间的距离和方位角的方法...
最近做有关GPS轨迹上有关的东西,花费心思较多,对两个常用的函数总结一下,求距离和求方位角,比较精确,欢迎交流! 1. 求两个经纬点的方位角,P0(latA, lonA), P1(latB, lonB ...
- python 计算两个经纬度的距离_python 通过两个点的经纬度计算距离
谷歌map计算公式: python代码: def haversine(lon1, lat1, lon2, lat2): # 经度1,纬度1,经度2,纬度2 (十进制度数) ""&q ...
- c语言输入坐标求距离,计算两个经纬度之间距离的C语言代码
// // main.c // Distance // // #include #include #define PI 3.1415926 #define EARTH_RADIUS 6378.137 ...
- redis也可以根据经纬度查询附近的元素以及计算两个经纬度的距离???
使用场景 通常地理位置距离排序算法 GeoHash 算法,GeoHash是一种优化的网格算法,能够高效的对经纬度进行比较,也是Redis是所使用的算法.比如,我们的线下教育课拼课的时候需要定位哪几个小 ...
- 高德经纬度距离计算php,计算两个经纬度之间的距离 单位(m)
/** * 计算两个经纬度之间的距离 单位(m) * * @param lat1 * @param lng1 * @param lat2 * @param lng2 * @return */ publ ...
最新文章
- 重复制造--REM主数据
- 公办低分二本_山东的5所专科院校,属于本省公办,适合低分学生报考
- boost::breadth_first_search用法的测试程序
- jsch连接mysql_求用jsch网络工具包通过ssh连接远程oracle数据库并发送sql操作语句(数据库在unix上)java代码例子...
- 阿里技术大牛最爱的“闲书”,你看过多少?
- rabbitmq怎样确认是否已经消费了消息_阿里Java研发二面:了解RabbitMQ?说说RabbitMQ可靠性投递...
- 函数的作用域在各浏览器的混乱情况
- 艾伟:基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写
- python 字符串去重且相同字符最多出现2次_【Python】获取字符串中出现次数最多/少的字符...
- 巧用电视卡让笔记本屏幕作PS2游戏显示器
- 如果你毕业想进央企, 那就选这些大学, 性价比很高
- ffmpeg批量转换ts为mp4
- linux的镜像文件有什么用,【iso】iso是什么?iso是什么意思?
- Python中的enumerate用法
- 通过cocos裁切图片,将大图分为小图
- 2023年前端面试题集锦
- 播放res/raw文件(MP4)
- 池州计算机一级考试试题题库,池州科目一考试题库
- 气不气!被迫无奈赚了500W,这程序员真的吊炸天...
- C语言循环之空心梯形,循环-空心梯形