| php中实现两个经纬度直接距离的计算
- class GeoHelper
- {
- CONST EARTH_RADIUS = 6378137;
-
- private static function getRadian($d)
- {
- return $d * M_PI / 180;
- }
-
- public static function getDistince ($lat1, $lng1, $lat2, $lng2)
- {
- $lat1 = self::getRadian($lat1);
- $lat2 = self::getRadian($lat2);
-
- $a = $lat1 - $lat2;
- $b = self::getRadian($lng1) - self::getRadian($lng2);
-
- $v = 2 * asin(sqrt(pow(sin($a/2),2) +
- cos($lat1) * cos($lat2) * pow(sin($b/2),2)));
-
- $v = round(self::EARTH_RADIUS * $v * 10000) / 10000;
-
- return $v;
- }
- }
|