У меня есть база данных о точках широты/долготы пользователей, и я пытаюсь группировать "близкие" точки вместе. "Закрыть" относительно, но пока это кажется ~ 500 футов.
Сначала казалось, что я могу просто группировать по строкам, которые имеют одну и ту же широту/долготу для первых трех знаков после запятой (примерно 300 х 300 ящиков, понимая, что они изменяются при удалении от экватора).
Однако этот метод, кажется, совершенно отсутствует. "Близость" не может существенно отличаться от расстояния, которое представляет каждое десятичное место. Он не принимает во внимание, что два местоположения могут иметь разные цифры в третьем (или любом) знаке после запятой, но все же находиться на расстоянии, которое представляет место (33.1239
и 33.1240
).
Я также размышлял над ситуацией, когда точка A и точка C "близки" к точке B (но не друг к другу) - должны ли они группироваться вместе? Если да, то что происходит, когда точка D "близка" к точке C (и никаким другим точкам) - также должна быть сгруппирована. Разумеется, мне нужно определить желаемое поведение, но как бы реализовать это?
Может ли кто-нибудь указать мне в правильном направлении, как это можно сделать и какие различные методы/подходы могут быть использованы?
Я немного чувствую, что мне не хватает чего-то очевидного.
В настоящее время данные представляют собой базу данных MySQL, используемую приложением PHP; однако я открыт для других методов хранения, если они являются ключевой частью для этого. Вот.