我已经获得了一个人的(荷兰语)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
当然,这是假设地球是平的。如果您需要补偿地球的曲率,请在谷歌上搜索“计算两个坐标之间的距离”。
如果我没记错的话,你提到的“荷兰坐标”以米为单位,所以获得 15 公里的边界框应该像 x +/- 15000
和 y +/- 一样简单15000
顺便说一句,mysql 有一个 sqrt 函数,所以从技术上讲,你可以在 mysql 中完成所有这些操作。
此外,如果您需要代码将 Rijksdriehoekscoördinaten 转换为 GPS 坐标,请告诉我;)
关于PHP/Mysql x y 坐标之间的半径搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36320582/