PHP/Mysql x y坐标之间的半径搜索

PHP/Mysql Radius search between x y coordinates

我得到了一个人的(荷兰语)x y 坐标和来自数据库中不同位置的 x y 坐标,例如:

x = 158322
y = 460782

现在我想找到这个人所在位置周围15公里半径范围内的所有位置。 找到它的最佳方法是什么?您能举个例子吗?

根据您拥有的数据量,您需要计算固定点与数据集中每个点之间的距离。如果数据集很大,可以先获取15km边界框内的所有点,然后计算匹配点的距离。

要计算 php 中的距离,您可以这样做:

$distance = sqrt(($x-$x2)^2+($y-$y2)^2 // = pythagoras a^2+b^2=c^2

当然这是假设地球是平的。如果您需要补偿地球的曲率,请 google 搜索 "calculate distance between two coordinates"。

如果我没记错的话,你提到的 "dutch coordinates" 是以米为单位的,所以得到一个 15km 的边界框应该像 x +/- 15000y +/- 15000

一样简单

顺便说一句,mysql 有一个 sqrt 函数,所以从技术上讲,您可以在 mysql 中完成所有这些操作。

此外,如果您需要将 Rijksdriehoekscoördinaten 转换为 GPS 坐标的代码,请告诉我 ;)