zoukankan      html  css  js  c++  java
  • 已知两点的经度和纬度,计算两点间的距离(php,javascript)

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

     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代码:

     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             },
  • 相关阅读:
    【对拍√】
    hdu5791 TWO
    luogu P1220 关路灯
    【NOI2001】食物链
    【HAOI2016】食物链
    luogu P1006 传纸条
    可持久化平衡树
    可持久化并查集
    线段树合并(【POI2011】ROT-Tree Rotations)
    可持久化数组
  • 原文地址:https://www.cnblogs.com/zhuchenglin/p/7705348.html
Copyright © 2011-2022 走看看