首页 PHP 库 其它类库 计算地图上两点间的距离PHP类
计算地图上两点间的距离PHP类
<?php
class GeoHelper
{
    /**
     * @param int $lat1
     * @param int $lon1
     * @param int $lat2
     * @param int $lon2
     * @param string $unit
     * @return
     */
    public static function distance($lat1, $lon1, $lat2, $lon2, $unit = "K")
    {
        $theta = $lon1 - $lon2;
        $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad
          ($lat2)) * cos(deg2rad($theta));
        $dist = acos($dist);
        $dist = rad2deg($dist);
        $miles = $dist * 60 * 1.1515;
        $unit = strtoupper($unit);
        if ($unit == "K") {
            return ($miles * 1.609344);
        } else
            if ($unit == "N") {
                return ($miles * 0.8684);
            } else { //mi
                return $miles;
            }
    }
    /**
     *
     * @param string $address
     * @param string $apikey
     * @return array [1]:lat [0]:lng
     */
    public static function getLatLng($address, $apikey)
    {
        $find = array("\n", "\r", " ");
        $replace = array("", "", "+");
        $address = str_replace($find, $replace, $address);
        $url = 'http://maps.google.com/maps/geo?q=' . $address . '&key=' . $apikey .
          '&sensor=false&output=xml&oe=utf8';
        $response = self::xml2array($url);
        $coordinates = $response['kml']['Response']['Placemark']['Point']['coordinates'];
        if (!empty($coordinates)) {
            $point_array = split(",", $coordinates);
            return $point_array;
        }
    }
}

计算地图上两点间的距离,使用的是谷歌地图

免责声明

本站所有资源均由网友贡献或各大下载网站转载。请自行检查软件的完整性!本站所有资源仅供学习参考。请不要将它们用于商业目的。否则,一切后果由您负责!如有侵权,请联系我们删除。联系方式:admin@php.cn

相关文章

在百度地图API中,如何使用Java计算两点间的距离,并显示在地图上? 在百度地图API中,如何使用Java计算两点间的距离,并显示在地图上?

30 Jul 2023

在百度地图API中,如何使用Java计算两点间的距离,并显示在地图上?百度地图API是一项强大的地理信息开发工具,提供了多种功能和接口供开发者使用。其中一个常用的功能就是计算两点间的距离,并将结果显示在地图上。本文将介绍如何使用Java语言来实现这一功能,并提供相应的代码示例。使用百度地图API进行开发,首先需要在官方网站申请一个开发者账号,并创建一个新的应

使用旋转卡尺法计算坐标平面上两点间的最大距离 使用旋转卡尺法计算坐标平面上两点间的最大距离

12 Sep 2023

在C++中,我们有一个预定义函数sqrt,它返回任何数字的平方根。旋转卡尺法是用于求解算法或计算几何的技术。旋转卡尺方法的视觉表示手部旋转显示了旋转卡尺图的真实示例,每当手部旋转时,都会显示垂直方向。我们还可以通过使用多边形来理解这个概念。在本文中,我们将使用旋转卡尺法求出两个坐标点的最大距离。语法程序中使用以下语法-vector<datatype>name参数向量-我们从关键字向量开始,同时在C++中初始化向量。datatype-由向量表示的数据元素的类型。name-向量的名称。算

如何使用 GeoPy 更准确地计算两点之间的距离? 如何使用 GeoPy 更准确地计算两点之间的距离?

05 Nov 2024

根据纬度和经度确定距离在尝试使用纬度和经度计算两点之间的距离时,您...

如何使用纬度和经度计算地球上两点之间的距离? 如何使用纬度和经度计算地球上两点之间的距离?

31 Oct 2024

纬度和经度:计算两点之间的距离计算地球上两点之间的距离需要了解...

如何使用纬度和经度计算地球上两点之间的距离? 如何使用纬度和经度计算地球上两点之间的距离?

01 Nov 2024

介绍基于纬度和经度的距离计算使用它们的...计算地球表面上两点之间的距离...

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

13 Jun 2016

PHP实现搜索地理位置及计算两点地理位置间距离的实例,地理位置两点。PHP实现搜索地理位置及计算两点地理位置间距离的实例,地理位置两点 地理位置搜寻 LBS,存储每个地点的经纬度坐标,搜寻附近的地点,

See all articles