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

这是一个不错的示例,直接贴代码,首先要知道纬度值、经度值

/**
* @desc 根据两点间的经纬度计算距离
* @param float $lat 纬度值
* @param float $lng 经度值
*/
function getDistance($lat1, $lng1, $lat2, $lng2)
{
$earthRadius = 6367000; //approximate radius of earth in meters 

/*
Convert these degrees to radians
to work with the formula
*/ 

$lat1 = ($lat1 * pi() ) / 180;
$lng1 = ($lng1 * pi() ) / 180; 

$lat2 = ($lat2 * pi() ) / 180;
$lng2 = ($lng2 * pi() ) / 180; 

/*
Using the
Haversine formula 

http://en.wikipedia.org/wiki/Haversine_formula 

calculate the distance
*/ 

$calcLongitude = $lng2 - $lng1;
$calcLatitude = $lat2 - $lat1;
$stepOne = pow(sin($calcLatitude / 2), 2) + cos($lat1) * cos($lat2) * pow(sin($calcLongitude / 2), 2);
$stepTwo = 2 * asin(min(1, sqrt($stepOne)));
$calculatedDistance = $earthRadius * $stepTwo; 

return round($calculatedDistance);
}
(0)

相关推荐

  • PHP计算百度地图两个GPS坐标之间距离的方法

    本文实例讲述了PHP计算百度地图两个GPS坐标之间距离的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: /**  * 计算两个坐标之间的距离(米)  * @param float $fP1Lat 起点(纬度)  * @param float $fP1Lon 起点(经度)  * @param float $fP2Lat 终点(纬度)  * @param float $fP2Lon 终点(经度)  * @return int  */ function distanceBetw

  • php实现计算百度地图坐标之间距离的方法

    本文实例讲述了php实现计算百度地图坐标之间距离的方法.分享给大家供大家参考,具体如下: 下面是网上的代码,使用的时候需要进行些许修改 第一个函数是获得范围,参数为纬度经度半径 第二个函数是计算坐标距离 <?php define('PI',3.1415926535898); define('EARTH_RADIUS',6378.137); //计算范围,可以做搜索用户 function GetRange($lat,$lon,$raidus){ //计算纬度 $degree = (24901 *

  • PHP实现搜索地理位置及计算两点地理位置间距离的实例

    地理位置搜寻 LBS,存储每个地点的经纬度坐标,搜寻附近的地点,建立地理位置索引可提高查询效率. mongodb地理位置索引,2d和2dsphere,对应平面和球面. 1.创建lbs集合存放地点坐标 use lbs; db.lbs.insert( { loc:{ type: "Point", coordinates: [113.332264, 23.156206] }, name: "广州东站" } ) db.lbs.insert( { loc:{ type: &q

  • PHP计算2点经纬度之间的距离代码

    复制代码 代码如下: function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2) {    $theta = $longitude1 - $longitude2;    $miles = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($la

  • php实现将字符串按照指定距离进行分割的方法

    本文实例讲述了php实现将字符串按照指定距离进行分割的方法.分享给大家供大家参考.具体如下: 将一个字符串每隔三个字符添加一个逗号,例如把字符串1234567890转换为1,234,567,890,这种做法在金融领域非常常见 <?php /** * 每隔3个字符,用逗号进行分隔 * @param string $str * @return string */ function splitStrWithComma ($str) { $arr = array(); $len = strlen($st

  • php计算两个坐标(经度,纬度)之间距离的方法

    本文实例讲述了php计算两个坐标(经度,纬度)之间距离的方法.分享给大家供大家参考.具体如下: 这里使用php计算两个坐标(经度,纬度)之间的距离,返回结果为米或者千米 function distance($lat1, $lng1, $lat2, $lng2, $miles = true) { $pi80 = M_PI / 180; $lat1 *= $pi80; $lng1 *= $pi80; $lat2 *= $pi80; $lng2 *= $pi80; $r = 6372.797; //

  • PHP查询附近的人及其距离的实现方法

    本文实例讲述了PHP查询附近的人及其距离的实现方法.分享给大家供大家参考,具体如下: <?php //获取该点周围的4个点 $distance = 1;//范围(单位千米) $lat = 113.873643; $lng = 22.573969; define('EARTH_RADIUS', 6371);//地球半径,平均半径为6371km $dlng = 2 * asin(sin($distance / (2 * EARTH_RADIUS)) / cos(deg2rad($lat))); $d

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

    这是一个不错的示例,直接贴代码,首先要知道纬度值.经度值 /** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值 */ function getDistance($lat1, $lng1, $lat2, $lng2) { $earthRadius = 6367000; //approximate radius of earth in meters /* Convert these degrees to r

  • SQLSERVER 根据地图经纬度计算距离差示例

    SQL SERVER 根据地图经纬度计算距离的公式 复制代码 代码如下: go --创建经纬度距离计算函数 CREATEFUNCTION [dbo].[fnGetDistance] --LatBegin 开始经度 --LngBegin 开始维度 (@LatBegin REAL, @LngBegin REAL, @LatEnd REAL, @LngEnd REAL) RETURNSFLOAT AS BEGIN --距离(千米) DECLARE @Distance REAL DECLARE @EAR

  • Android获取经纬度计算距离介绍

    经度指示南北方向,纵向纬度指示东西方向,横向 获取经纬度 使用GPS权限: 复制代码 代码如下: <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> Android提供LocationManager和Location,可以方便的获得经纬度.海拔等位置.使用LocationManager来获得位置管理类,从而可以获得历史GPS信息以及位

  • python根据经纬度计算距离示例

    复制代码 代码如下: /** * 计算两点之间距离 * @param _lat1 - start纬度 * @param _lon1 - start经度 * @param _lat2 - end纬度 * @param _lon2 - end经度 * @return km(四舍五入) */public static double getDistance(double _lat1,double _lon1, double _lat2,double _lon2){ double lat1 = (Math

  • C#通过经纬度计算2个点之间距离的实现代码

    根据两点经纬度计算距离 这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等,这个圆圈就叫作"赤道".在赤道的南北两边,画出许多和赤道平行的圆圈,就是"纬圈":构成这些圆圈的线段,叫做纬线.我们把赤道定为纬度零度,向南向北各为90度,在赤道以南的叫南纬,在赤道以北的叫北纬. 北极就是北纬90度,南极就是南纬90度.纬度的高低也标志着气候的冷热,如

  • 根据经纬度计算地球上两点之间的距离js实现代码

    利用JS实现的根据经纬度计算地球上两点之间的距离 最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下. 计算地球表面两点间的距离大概有两种办法. 第一种是默认地球是一个光滑的球面,然后计算任意两点间的距离,这个距离叫做大圆距离(The Great Circle Distance). 公式如下: 使用JS来实现为: 复制代码 代码如下: var EARTH_RADIUS = 6378137.0; //单位M var PI = Math.PI; function getRad(

  • java计算两点间的距离方法总结

    使用java自带的Point类 import java.awt.Point;//引用awt包下的Point类,此类的功能是表示 (x,y) 坐标空间中的位置的点 public class Distance { public static void main(String[] args) { Point p1 = new Point(5, 6);// 定义第一个点的坐标(5,6) Point p2 = new Point(7,8);// 定义第二个点的坐标(7,8) //定位坐标 System.o

  • 详解js根据百度地图提供经纬度计算两点距离

    正常在使用百度地图时,我们可以通过BMap的实例对象提供的方法计算距离: var map = new BMap.Map('map_canvas'); map.getDistance(point1 ,point2); //point1.point2 是Point对象 如果在不使用百度地图,但是已知百度地图的经纬度情况下也是可以计算出与上面相同的值的 三方库 此库提供计算两点距离的方法 引用此库使用 返回(米) BMapLib.GeoUtils.getDistance(point1 ,point2)

  • 使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)

    目录 基础准备工作 1.PostGIS 的安装 2.加载Post GIS扩展 3.河流矢量图层转成单线格式 4.河流矢量数据导入PostgreSQL数据库 5.河流数据拓扑处理 PG分析处理函数 1.函数编写 2.参数说明 3.内部调用函数说明 4.输出结果验证 基础准备工作 1.PostGIS 的安装 在安装PostGIS前首先必须安装PostgreSQL,然后再安装好的Stack Builder中选择安装PostGIS组件.具体安装步骤可参照PostGIS的安装与初步使用 2.加载Post

  • golang与php实现计算两个经纬度之间距离的方法

    本文实例讲述了golang与php实现计算两个经纬度之间距离的方法.分享给大家供大家参考,具体如下: golang版本: 复制代码 代码如下: package main import (     "fmt"     "math" ) func main() {     lat1 := 29.490295     lng1 := 106.486654     lat2 := 29.615467     lng2 := 106.581515     fmt.Printl

随机推荐