Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 列出某个位置特定半径内的点?_Php_Mysql_Algorithm_Location_Radius - Fatal编程技术网

Php 列出某个位置特定半径内的点?

Php 列出某个位置特定半径内的点?,php,mysql,algorithm,location,radius,Php,Mysql,Algorithm,Location,Radius,我正在为iPhone应用程序制作API。简单地说,我在数据库中存储了位置(Lat/long)。当一个用户发送一个对半径为五(5)英里范围内的点的请求时,我需要使用一个算法从MySQL数据库中只给我这些点 如何将坐标中的英里转换为分钟?也就是说,考虑到经度逐渐变细的特性,我要在搜索的坐标中添加多少来与用户的位置进行比较 2当你到达地球的不同点时,考虑经度/纬度变化的方式有什么好的公式 谢谢:)您从未提及如何存储数据,因此我无法提供实际代码。以下是我想到的: 将所有数据导入某个高效的数据库。对其进行

我正在为iPhone应用程序制作API。简单地说,我在数据库中存储了位置(Lat/long)。当一个用户发送一个对半径为五(5)英里范围内的点的请求时,我需要使用一个算法从MySQL数据库中只给我这些点

  • 如何将坐标中的英里转换为分钟?也就是说,考虑到经度逐渐变细的特性,我要在搜索的坐标中添加多少来与用户的位置进行比较
  • 2当你到达地球的不同点时,考虑经度/纬度变化的方式有什么好的公式


    谢谢:)

    您从未提及如何存储数据,因此我无法提供实际代码。以下是我想到的:

  • 将所有数据导入某个高效的数据库。对其进行优化,使其能够在特定的X/Y范围内有效地提取坐标
  • 选择10x10平方英里范围内的所有坐标。将它们导入数组
  • 使用
    foreach
    遍历该数组并使用距离公式(
    distance=sqrt((x-x)^2+(y-y)^2)
    )。如果在5英里内,则将其添加到另一个阵列中。如果没有,忽略它
  • 我不知道在一个小地方有数千个坐标会有多大的效率;您可能需要对其进行微调(例如,如果要找到最近的位置,请先尝试一个较小的框)


    我必须同意Darren的观点,Google Maps API可能更适合,尽管我以前从未使用过它。

    我想说:到此为止,看一看。我的意思是,它存在是有原因的。关于地理坐标,确定距离的最准确的方法不是欧克利德距离,而是大圆距离: