计算两组经纬度座标间的距离

 1 /**
 2  * 计算两组经纬度座标间的距离
 3  * params:lat1纬度1,lng1经度1,lat2纬度2,lng2经度2,len_type(1:m|2:km);
 4  * Echo GetDistance($lat1,$lng1,$lat2,$lng2).‘米‘;
 5  */
 6 function GetDistance($lat1,$lng1,$lat2,$lng2,$len_type=1,$decimal=2){
 7     $EARTH_RADIUS=6378.137;     //地球半径,假设地球是规则的球体
 8     $PI=3.1415926;              //圆周率
 9     $radLat1 = $lat1 * $PI / 180.0;
10     $radLat2 = $lat2 * $PI / 180.0;
11     $a       = $radLat1 - $radLat2;
12     $b       = ($lng1 * $PI / 180.0) - ($lng2 * $PI / 180.0);
13     $s = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1) * cos($radLat2) * pow(sin($b/2),2)));
14     $s = $s * $EARTH_RADIUS;
15     $s = round($s*1000);
16     if($len_type>1){
17        $s /= 1000;
18     }
19     return round($s,$decimal);
20 }
时间: 2024-09-29 01:23:13

计算两组经纬度座标间的距离的相关文章

计算两个经纬度点间的距离

纬度线投射在图上看似水平的平行线,但实际上是不同半径的圆.有相同特定纬度的所有位置都在同一个纬线上. 赤道的纬度为0°,将行星平分为南半球和北半球. 纬度是指某点与地球球心的连线和地球赤道面所成的线面角,其数值在0至90度之间.位于赤道以北的点的纬度叫北纬,记为N,位于赤道以南的点的纬度称南纬,记为S.纬度数值在0至30度之间的地区称为低纬地区,纬度数值在30至60度之间的地区称为中纬地区,纬度数值在60至90度之间的地区称为高纬地区.赤道.南回归线.北回归线.南极圈和北极圈是特殊的纬线.纬度1

PHP计算两个经纬度地点之间的距离

/**  * 求两个已知经纬度之间的距离,单位为米  *   * @param lng1 $ ,lng2 经度  * @param lat1 $ ,lat2 纬度  * @return float 距离,单位米  * @author www.Alixixi.com   */ function getdistance($lng1, $lat1, $lng2, $lat2) {     // 将角度转为狐度     $radLat1 = deg2rad($lat1); //deg2rad()函数将角

java通过经纬度计算两个点的之间的距离的算法

通过两个点的经纬度计算距离 从google maps的脚本里扒了段代码,没准啥时会用上.大家一块看看是怎么算的.private const double EARTH_RADIUS = 6378.137;private static double rad(double d){   return d * Math.PI / 180.0;} public static double GetDistance(double lat1, double lng1, double lat2, double ln

计算两个经纬度之间的距离

//计算两个经纬度之间的距离 /** * 计算两点地理坐标之间的距离 * @param Decimal $longitude1 起点经度 * @param Decimal $latitude1 起点纬度 * @param Decimal $longitude2 终点经度 * @param Decimal $latitude2 终点纬度 * @param Int $unit 单位 1:米 2:公里 * @param Int $decimal 精度 保留小数位数 * @return Decimal

计算两个经纬地之间的距离

/** * 计算两个经纬度之间的距离 (lon1,lat1),(lon2,lat2) * @param lan1 * @param lat1 * @param lan2 * @param lat2 * @return */ public static double GetDistance(double lng1, double lat1, double lng2, double lat2) { double EARTH_RADIUS = 6371.393; double radLat1 = (l

微信lbs---返回两个经纬度坐标点的距离

微信开发:lbs附近的商家,在数据库里记录商家的坐标,lbs设置里管理搜索半径,查询的时候,查询 客户当前坐标的半径内的所有商家列表.个人喜欢不一样,我选择了执行sql ,毕竟效果高点.微信开发必须得将就效率问题.不然等半天出不来,急死人,半天出不来结果,客户直接走人.不多说,直接上代码 \\返回两个经纬度坐标点的距离(单位:米) \\C#  方法 ///<summary>返回两个经纬度坐标点的距离(单位:米) by Alex.Y</summary>         ///<

计算两个GPS坐标点的距离

计算两个GPS坐标点的距离,第一个参数是第一个点的维度,第二个参数是第一个点的经度 http://yuninglovekefan.blog.sohu.com/235655696.html /** * */ package utils; /** * 坐标计算的工具类 * * @author ywf * */ public class PositionUtils { private static final double EARTH_RADIUS = 6371.004; static double

IOS 计算两个经纬度之间的距离

一 丶 -(double)distanceBetweenOrderBy:(double) lat1 :(double) lat2 :(double) lng1 :(double) lng2{ CLLocation *curLocation = [[CLLocation alloc] initWithLatitude:lat1 longitude:lng1]; CLLocation *otherLocation = [[CLLocation alloc] initWithLatitude:lat2

计算两个latitude-longitude点之间的距离? (Haversine公式)

问题描述 如何计算纬度和经度指定的两点之间的距离?为了澄清,我想要距离公里;这些点使用WGS84系统,我想了解可用方法的相对准确性.最佳解决方案 这个link可能对您有帮助,因为它详细说明了使用Haversine formula计算距离. 摘抄: This script [in Javascript] calculates great-circle distances between the two points – that is, the shortest distance over the