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;
结果
php根据经纬度计算距离和方向--摘录自http://haotushu.sinaapp.com/post-520.html的更多相关文章
- iOS根据2个经纬度计算距离
#pragma mark - calculate distance 根据2个经纬度计算距离 #define PI 3.14159265358979323 +(double) CalculationDi ...
- java工具类(六)根据经纬度计算距离
Java实现根据经纬度计算距离 在项目开发过程中,需要根据两地经纬度坐标计算两地间距离,所用的工具类如下: Demo1: public static double getDistatce(double ...
- python的N个小功能(文本字段对应数值,经纬度计算距离,两个时间点计算时间间隔)
案例1 >>> import pandas as pd >>> df=pd.DataFrame({'A':[1,2,3],'B':[1,2,3],'C':[1,2, ...
- php有经纬度计算距离
/** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值 */ function getDistanc ...
- PHP根据两点间的经纬度计算距离,php两点经纬度计算(转)
这是一个不错的示例,直接贴代码,首先要知道纬度值.经度值 /** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经 ...
- MySQL创建根据经纬度计算距离的函数
按照经纬度计算距离 日常开发中,特别是做微信项目时,经常会遇到根据用户地理位置来展示附近商家的功能,通常解决这种问题的思路是,后台设置商家的经纬度,然后再根据前台传的经纬度进行计算,具体经纬度转换以及 ...
- PHP根据两点间的经纬度计算距离
/** * 说明: 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值 */ function getDistance($lat ...
- cesium根据经纬度计算距离
var startLatitude = 36;var startLongitude = 120; var endLatitude=34; var endLongitude=121; var start ...
- 【PHP】根据两地经纬度计算距离
最近做一个H5活动的项目,有个要求是必须现场玩家才能参与,所以就需要计算玩家位置和活动地点的距离来判断是否在活动现场. 以下是写的一个根据经纬度计算两地距离的方法 1 function getDist ...
随机推荐
- HttpURLConnection的流式输出的缺陷和解决方法
转自:http://www.mzone.cc/article/198.html 最近在用applet写文件上传控件的时候发现使用URLConnection来对服务器进行流式输出时的一些问题.我们通常要 ...
- 关于PHP开发的9条建议
这篇文章主要介绍了关于PHP开发的9条建议,都是个人的一些经验总结,有需要的小伙伴可以参考下. 本文只是个人从实际开发经验中总结的一些东西,并不是什么名言警句,写出来有两个目的:一是时刻提醒自己要按照 ...
- java从mysql导出数据例子
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...
- Bison executable not found in PATH by mysql install
[root@luozhonghua mysql-5.5.21]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/d ...
- Android框架之网络开发框架Volley
1. Volley简单介绍 我们平时在开发Android应用的时候不可避免地都须要用到网络技术.而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据.Android系统中主要提供了两种方式来进 ...
- fork和exec函数
#include<unistd.h> pid_t fork(void); 返回:在子进程中为0,在父进程中为子进程IO,若出错则为- fork最困难之处在于调用它一次,它却返回两次.它在调 ...
- 调试php的soapServer
用.NET的webservice做调试很轻松. 用soapserver的try和cacth获取不了多少信息
- DedeCMS文章标题前增加所属栏目名称链接
问题描述:在调用文章标题的时候,我想实现这样的形式:“[国内新闻]站长无忧真的是一个不错的站”,其中“国内新闻”是标题的所属栏目,并且加链接: 解决方法: [field:typelink /]这 ...
- css3新增加的选择器
css3新增加的选择器 一.属性选择器: E[attr] 只要有属性名E[attr=value] 属性名=属性值E[attr~=blue] 包含这个blue整个单词就可以E[attr^=c] 以这个字 ...
- 使用html5兼容低版本浏览器
因为html5 新出的一些语义化的标签,在低版本浏览器下不能识别,举个例子,比如你写了一个 header 标签中,写了一段文本,在低版本浏览器下,肯定是能看到的,但是,那是他是不认识 header标签 ...