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; // mean radius of Earth in km

 $dlat = $lat2 - $lat1;

 $dlng = $lng2 - $lng1;

 $a = sin($dlat/2)*sin($dlat/2)+cos($lat1)*cos($lat2)*sin($dlng/2)*sin($dlng/2);

 $c = 2 * atan2(sqrt($a), sqrt(1 - $a));

 $km = $r * $c;

 return ($miles ? ($km * 0.621371192) : $km);

}

时间: 2024-10-23 20:31:46

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

计算两个坐标点之间的点的坐标

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>计算两个坐标点之间的点的坐标</title> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> &l

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

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; //地球半径,假设

根据两点的经纬度坐标计算两个坐标点之间的直线距离

贴代码如下: package com.qcsd.xulin.util; import java.awt.*; /** * @author xulin * @date create in 9:06 2018/11/1 * Description 根据提供的两个国标经纬度,计算两个点之间的距离 */ public class DistanceConsider { // 地球半径 private static double EARTH_RADIUS = 6378.137; private static

PHP计算两个坐标之间的距离

<?php /** * 计算两点之间的距离 * @param $lng1 经度1 * @param $lat1 纬度1 * @param $lng2 经度2 * @param $lat2 纬度2 * @param int $unit m,km * @param int $decimal 位数 * @return float */ function getDistance($lng1, $lat1, $lng2, $lat2, $unit = 2, $decimal = 2) { $EARTH_R

[转] PHP计算两个坐标之间的距离, Calculate the Distance Between Two Points in PHP

Calculate the Distance Between Two Points in PHP There are a lot of applications where it is useful to know the distance between two coordinates. Here, you'll find a PHP function that takes the latitude and longitude of two points and returns the dis

mysql实现经纬度计算两个坐标之间的距离

DELIMITER $$CREATE DEFINER = CURRENT_USER FUNCTION `getDistance`(`lon1` float,`lat1` float,`lon2` float,`lat2` float) RETURNS doublebegin declare d double; declare radius int; set radius = 6378140; #假设地球为正球形,直径为6378140米 set d = (2*ATAN2(SQRT(SIN((lat

mysql实现经纬度计算两个坐标之间的距离sql语句

select *,(2 * 6378.137* ASIN(SQRT(POW(SIN(PI()*(111.86141967773438-latitude)/360),2)+COS(PI()*33.07078170776367/180)* COS(latitude * PI()/180)*POW(SIN(PI()*(33.07078170776367-longitude)/360),2)))) as juli from school_base_infoorder by juli asc limit

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

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

计算两个GPS经纬度坐标之间的距离 PHP

不多说了,自己代码就行,你可以直接拿来用. /** * 计算两个坐标之间的距离(米) * @param float $fP1Lat 起点(纬度) * @param float $fP1Lon 起点(经度) * @param float $fP2Lat 终点(纬度) * @param float $fP2Lon 终点(经度) * @return int */ function distanceBetween($fP1Lat, $fP1Lon, $fP2Lat, $fP2Lon){ $fEARTH_