前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >已知两点的经度和纬度,计算两点间的距离(php,javascript)

已知两点的经度和纬度,计算两点间的距离(php,javascript)

作者头像
lin_zone
发布2018-08-15 11:16:11
7310
发布2018-08-15 11:16:11
举报
文章被收录于专栏:LIN_ZONELIN_ZONE

php代码:转载  http://www.cnblogs.com/caichenghui/p/5977431.html

代码语言:javascript
复制
 1 /**
 2  * 求两个已知经纬度之间的距离,单位为米
 3  * 
 4  * @param lng1 $ ,lng2 经度
 5  * @param lat1 $ ,lat2 纬度
 6  * @return float 距离,单位米
 7  * @author www.Alixixi.com 
 8  */
 9 function getdistance($lng1, $lat1, $lng2, $lat2) {
10     // 将角度转为狐度
11     $radLat1 = deg2rad($lat1); //deg2rad()函数将角度转换为弧度
12     $radLat2 = deg2rad($lat2);
13     $radLng1 = deg2rad($lng1);
14     $radLng2 = deg2rad($lng2);
15     $a = $radLat1 - $radLat2;
16     $b = $radLng1 - $radLng2;
17     $s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2))) * 6378.137 * 1000;
18     return $s;
19 } 

javascript代码:

代码语言:javascript
复制
 1 //返回单位 m 
 2 get_distance(lat1,lng1,lat2,lng2){
 3                 var radLat1 = lat1 * Math.PI / 180.0;
 4                 var radLat2 = lat2 * Math.PI / 180.0;
 5                 var a = radLat1 - radLat2;
 6                 var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
 7                 var 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)));
 8                 s = s * 6378.137;
 9                 s = Math.round(s * 10000) / 10000;
10                 s = s*1000;
11                 return s;
12             },
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档