php - php如何在给定的经纬度附近分组最近的位置?

  显示原文与译文双语对照的内容

我有一个 array 位置,每个项目包括名字,纬度和那个地方的长。 现在我想用半径英里的半径对附近的项目进行分组。

我如何在PHP中实现这个?

时间: 原作者:

你需要另一个 array 来存储数据。 还有你的array的复制品。


for each $place in $places_array do


 store $place in $store_array


 for each $place2 in $places2_array do


 if $place2 == $place


 continue


 else


 if compare_radius() == true


 store $place2 in $store_array


 end_if


 end_else


 end_for


 erase each new data in store from $places2_array (Only if you do not want to replicate data)


end_for



Vars

  • $store_array: 新 array,所有位置均为 GROUP BY 。 它的结构可以是像 [0]> [place_1] [place_2],[1]> [place_1],等等 。
  • $places_array: 数据的array 。
  • $places2_array: 从 $places_array. 复制

我知道这不是一种有效的算法但是它可以。 如果你有很多数据,最好使用另一种算法。

...