Как сгруппировать ближайшие местоположения поблизости по заданным значениям lat и long? - PullRequest
2 голосов
/ 31 августа 2011

Представьте, что у меня есть массив мест, и каждый элемент включает в себя имя, лат и длину этого места.Теперь я хочу сгруппировать близлежащие предметы, например, используя радиус в милях.

Как мне добиться этого в PHP?

1 Ответ

0 голосов
/ 31 августа 2011

Вам нужен второй массив для хранения данных. И дубликат вашего массива мест.

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

Варс

  • $ store_array: новый массив со всеми местами, сгруппированными по близости. Его структура может выглядеть как [0] -> [place_1] [place_2], [1] -> [place_1] и т. Д. ...
  • $ place_array: ваш массив данных.
  • $ place2_array: дубликат из $ place_array.

Я знаю, что это не эффективный алгоритм, но он выполняет свою работу. Если у вас много данных, возможно, лучше использовать другой алгоритм.

...