Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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_Sql_Google Maps - Fatal编程技术网

Php 在经纬度范围内搜索记录

Php 在经纬度范围内搜索记录,php,sql,google-maps,Php,Sql,Google Maps,嗨,我在用这张地图 我可以得到所需位置的纬度和经度,也可以得到距离(半径)。所以我有一个数据库,每个记录都有纬度和经度。我想在地图上选定的范围内搜索记录。sql查询将如何工作 为了更好地解释,我的每条记录都有一个纬度和经度。用户将选择地图,我希望搜索所选范围内的记录。我一直使用的方法是使用地图api绘制一个具有所需半径的圆,找到该圆的横向边界,然后查询数据库: SELECT * FROM yourtable WHERE lat BETWEEN a AND c AND lng between b

嗨,我在用这张地图

我可以得到所需位置的纬度和经度,也可以得到距离(半径)。所以我有一个数据库,每个记录都有纬度和经度。我想在地图上选定的范围内搜索记录。sql查询将如何工作


为了更好地解释,我的每条记录都有一个纬度和经度。用户将选择地图,我希望搜索所选范围内的记录。

我一直使用的方法是使用地图api绘制一个具有所需半径的圆,找到该圆的横向边界,然后查询数据库:

SELECT * FROM yourtable WHERE lat BETWEEN a AND c AND lng between b AND  d
其中a和b为左上角坐标,c和d为右下角坐标


既然所有对象都在边界框内,则需要将它们传递回前端,并确定它们是否在半径内

获取你的点到每条记录的距离,如果它在你的半径范围内,则意味着小于你的半径。显示它。你知道你要做什么。你写的查询是什么?@SatishSharma-那么测地线上距离的计算是什么?如何避免对每个查询进行全表扫描?@Matbaile距离可以通过简单的两点之间距离数学计算得出。是的,它会减慢进程,因为它会获取每条记录并计算与之之间的距离。@MatBailie bro我想和你讨论一下,如果我们使用一个过程来处理它。我们能用它吗?它会提高性能吗?