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;

结果

php根据经纬度计算距离和方向--摘录自http://haotushu.sinaapp.com/post-520.html的更多相关文章

  1. iOS根据2个经纬度计算距离

    #pragma mark - calculate distance 根据2个经纬度计算距离 #define PI 3.14159265358979323 +(double) CalculationDi ...

  2. java工具类(六)根据经纬度计算距离

    Java实现根据经纬度计算距离 在项目开发过程中,需要根据两地经纬度坐标计算两地间距离,所用的工具类如下: Demo1: public static double getDistatce(double ...

  3. python的N个小功能(文本字段对应数值,经纬度计算距离,两个时间点计算时间间隔)

    案例1 >>> import pandas as pd >>> df=pd.DataFrame({'A':[1,2,3],'B':[1,2,3],'C':[1,2, ...

  4. php有经纬度计算距离

    /** *  @desc 根据两点间的经纬度计算距离 *  @param float $lat 纬度值 *  @param float $lng 经度值 */  function getDistanc ...

  5. PHP根据两点间的经纬度计算距离,php两点经纬度计算(转)

    这是一个不错的示例,直接贴代码,首先要知道纬度值.经度值 /** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经 ...

  6. MySQL创建根据经纬度计算距离的函数

    按照经纬度计算距离 日常开发中,特别是做微信项目时,经常会遇到根据用户地理位置来展示附近商家的功能,通常解决这种问题的思路是,后台设置商家的经纬度,然后再根据前台传的经纬度进行计算,具体经纬度转换以及 ...

  7. PHP根据两点间的经纬度计算距离

    /** * 说明: 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值 */ function getDistance($lat ...

  8. cesium根据经纬度计算距离

    var startLatitude = 36;var startLongitude = 120; var endLatitude=34; var endLongitude=121; var start ...

  9. 【PHP】根据两地经纬度计算距离

    最近做一个H5活动的项目,有个要求是必须现场玩家才能参与,所以就需要计算玩家位置和活动地点的距离来判断是否在活动现场. 以下是写的一个根据经纬度计算两地距离的方法 1 function getDist ...

随机推荐

  1. chgrp、chown、chmod命令

    讲解内容: 权限代号的含义如下: r:读写目录或文件的权限    read w :写入目录或文件的权限  write x :执行目录或文件的权限 -:删除目录或文件的权限 s:特殊权限,更改目录或文件 ...

  2. Duff in Love - 588B(素数的判断)

    题目大意:如果一个数的所有因子都不是别的数的平方,那么这个数就是lovely数,现在给定一个数,求出这个数所有因子里面最大的lovely数 分析:很有意思的一道题,如果把这个数因子分解成最基本的苏因子 ...

  3. JSP_DAO方式实现数据库查询(MyEclipse10,Tomcat7.0,JDK1.7,)——Java Web练习(四)

    1.项目结构: 2.创建数据库.表.插入记录 create database TestDao; use TestDao; create table student( stuid int, userna ...

  4. EXCEL 2010学习笔记—— 动态图表

    今天梳理一下动态图表的相关内容,做一个简单的整理 关键的操作点: 1.插入动态控制器:开发工具->插入->表单控件 对控件进行修改  右键 设置控件格式->单元格链接 用来作为if ...

  5. VIM中的正则表达式及替换命令

    VIM中的正则表达式及替换命令 一.使用正则表达式的命令 使用正则表达式的命令最常见的就是 / (搜索)命令.其格式如下: /正则表达式 另一个很有用的命令就是 :s(替换)命令,将第一个//之间的正 ...

  6. 如何调试PHP的Core之获取基本信息 --------风雪之隅 PHP7核心开发者

    http://www.laruence.com/2011/06/23/2057.html https://github.com/laruence PHP开发组成员, Zend兼职顾问, PHP7核心开 ...

  7. windows7 'telnet'不是内部或外部命令--转载

    ['telnet'不是内部或外部命令,也不是可运行的程序或批处理文件]当你想用telnet命令时,发现提示这句话怎么办?其实很简单,接下来为大家介绍下如何使用 方法/步骤   一般只有windows7 ...

  8. android之Java+html+javascript混合开发

    android开发,除了使用原生态的开发方式之外,还可以使用java+html+javascript混合开发的方式来开发,这样可以节省大量的开发时间,同时还可以使不同设备的用户获得相同的用户体验.好了 ...

  9. CentOS 6.7安装Hadoop 2.6.3集群环境

    在CentOS 6.7 x64上搭建Hadoop 2.6.3完全分布式环境,并在DigitalOcean上测试成功. 本文假设: 主节点(NameNode)域名(主机名):m.fredlab.org ...

  10. springmvc使用aop心得

    第一步:创建aop拦截类: @Component @Aspect public class ControllerSelectorInterceptor { @Before("executio ...