当前位置: 首页 > 面试题库 >

计算给定2点的距离,即纬度和经度[重复]

夏兴平
2023-03-14
问题内容

这个问题已经在这里有了答案

8年前关闭。

可能重复:
MySQL纬度和经度表设置

我知道这个问题可能已经被问过很多遍了,我已经进行了很多研究,并且在某些具体问题上需要帮助。

假设我有一个表单,用户输入了经度和纬度,并且我有一个数据库,该数据库的表包含经度和纬度,我将如何在该表中搜索半径15英里以内的一个或多个点?


问题答案:

您可以使用公式来计算两点之间的距离。例如:

function get_distance($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'Mi') { 
    $theta = $longitude1 - $longitude2; 
    $distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + 
                (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * 
                cos(deg2rad($theta))); 
    $distance = acos($distance); 
    $distance = rad2deg($distance); 
    $distance = $distance * 60 * 1.1515; 
    switch($unit) { 
        case 'Mi': 
            break; 
        case 'Km' : 
            $distance = $distance * 1.609344; 
    } 
    return (round($distance,2)); 
}

您还可以执行以下操作:

$query = "SELECT *,(((acos(sin((".$latitude."*pi()/180)) * 
            sin((`Latitude`*pi()/180))+cos((".$latitude."*pi()/180)) * 
            cos((`Latitude`*pi()/180)) * cos(((".$longitude."- `Longitude`)* 
            pi()/180))))*180/pi())*60*1.1515
        ) as distance 
        FROM `MyTable` 
        HAVING distance >= ".$distance.";


 类似资料:
  • 问题内容: 我的桌子有经度和纬度 所以我想要的是我要从页面传递两个经度和纬度。如何使用存储过程查找最近的地方?我没有太多帮助,所以我必须在这里询问 尝试过使用这个 但是我必须将其与表值进行匹配,所以我该如何实现呢? 问题答案: 您可以在SQL中使用与上面显示的查询类似的查询,其中和是要搜索的变量值。该和是从你的表的列名。顺便说一句,这称为Haversine公式,该常数用于获取以KM为单位的距离,而

  • 问题内容: 我很难缠一些三角学。我正在尝试根据起始纬度,对数,距离和方位来推论目标纬度和经度。 幸运的是,我找到了一个令人惊叹的网站,该网站准确地描述了我需要的功能:http : //www.movable- type.co.uk/scripts/latlong.html “给定目标点的距离并与起点保持距离”我尝试了java程序,但对我不起作用。我按照网站所述部署它。这是我的代码: 但它显示的输出

  • 问题内容: 我有一张表,上面有: 城市纬度经度 而且我需要一个sql查询来知道所有城市都距离纽约100英里。 问题答案: 也许这对您有帮助:http : //www.scribd.com/doc/2569355/Geo-Distance-Search-with- MySQL 这是一个不错的介绍。或只是google for ,您会发现一些教程。 如果有可能并且想让它变得更简单,请直接使用支持距离查询

  • 本文向大家介绍C#通过经纬度计算2个点之间距离的实现代码,包括了C#通过经纬度计算2个点之间距离的实现代码的使用技巧和注意事项,需要的朋友参考一下 根据两点经纬度计算距离 这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等,这个圆圈就叫作“赤道”。在赤道的南北两边,画出许多和

  • 问题内容: 为了在地图上画一个圆,我有一个中心GLatLng(A)和一个半径(r)以米为单位。 这是一个图: 如何计算位置B的GLatLng?假设r平行于赤道。 使用GLatLng.distanceFrom()方法获得给定A和B时的半径是微不足道的-但反之则不然。似乎我需要做一些更重的数学运算。 问题答案: 我们将需要一种方法,该方法会在给定方位角和距源点的距离时返回目标点。幸运的是,克里斯·韦尼

  • 问题内容: 我希望能够估算两个(纬度,经度)点之间的距离。我想下冲,因为这将用于A 图形搜索,并且我希望它能 快速* 。这些点最多相距800公里。 问题答案: Python中Haversine公式的答案(两个GPS点之间的轴承和距离)提供了可以回答您问题的Python实现。 使用下面的实现,我在一台旧笔记本电脑上 不到1秒的 时间内 执行了100,000次迭代 。我认为对于您来说,这应该足够了。但