zoukankan      html  css  js  c++  java
  • php根据经纬度计算距离和方向--摘录自http://haotushu.sinaapp.com/post-520.html

    define('EARTH_RADIUS', 6367000);//需定义的静态变量
    function getRadian($d)
    
    {
    
    return $d * M_PI / 180;
    
    }
    
    function getDistance ($lat1, $lng1, $lat2, $lng2)
    
    {
    
    $lat1 =getRadian($lat1);
    
    $lat2 = getRadian($lat2);
    
    $a = $lat1 - $lat2;
    
    $b = getRadian($lng1) - getRadian($lng2);
    
    $v = 2 * asin(sqrt(pow(sin($a/2),2) +
    
    cos($lat1) * cos($lat2) * pow(sin($b/2),2)));
    
    $v = round(EARTH_RADIUS * $v * 10000) / 10000;
    
    return $v;
    
    }
    //根据经纬度计算方向
    
    function getDirection($lat1, $lng1, $lat2, $lng2){
    
    $k1 = $lng2-$lng1;
    
    $k2 = $lat2-$lat1;
    
    if( 0 == $k1){
    
    if($k2>0){
    
    $str="聊友在您的正北方 ";
    
    }
    
    else if( $k2<0){
    
    $str ="聊友在您的正南方 ";
    
    }
    
    else if( $k2 == 0){
    
    $str="聊友正在您的附近 ";
    
    }
    
    }else if( 0 == $k2){
    
    if($k1>0){
    
    $str="聊友在您的正东方 ";
    
    }
    
    else if( $k1<0){
    
    $str="聊友在您的正西方 ";
    
    }
    
    }else{
    
    $k=$k2/$k1;
    
    if($k2>0){
    
    if($k1>0){
    
    $angle = 180*atan($k)/M_PI;
    
    $str="聊友在您的东偏北 $angle 度方向  ";
    
    }else if($k1<0){
    
    $angle = 180*atan(-$k)/M_PI;
    
    $str= "聊友在您的西偏北 $angle 度方向  ";
    
    }
    
    }else if($k2<0){
    
    if($k1<0){
    
    $angle = 180*atan($k)/M_PI;
    
    $str = "聊友在您的西偏南 $angle 度方向  ";
    
    }
    
    else if($k1>0){
    
    $angle = 180*atan($k)/M_PI;
    
    $str="聊友在您的东偏南 $angle 度方向  ";
    
    }
    
    }
    
    }
    
    return $str;
    
    }
    echo getDirection(40.770623,-73.964367,40.758224,-73.917404);
    
    exit;

    结果image

  • 相关阅读:
    JVM系列(三)垃圾回收
    JVM系列(二)各区域的OOM
    JVM系列(一)内存模型
    获取IP、mac等信息
    memcached(七)--常用指令抓包分析
    memcached(五)--源码分析,启动
    apt安装mysql + 简易配置
    memcached(六)--spyMemcached的get操作
    解决mysql获取不到连接的问题
    tcp一些要点
  • 原文地址:https://www.cnblogs.com/jdhu/p/4237637.html
Copyright © 2011-2022 走看看