Как получить координаты с наибольшей плотностью маркеров на карте? - PullRequest
0 голосов
/ 07 ноября 2019

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

Например, я хочу найти места, где произошло как минимум 5 событий. Если бы было 5 событий, происходящих в TimesSquare, и 10 событий, происходящих в Центральном парке, то у меня было бы 2 плотных точки с его координатами. Для этого я рассмотрел наличие расстояния / радиуса, чтобы определить, достаточно ли близки два события, чтобы считаться «связанными» для такого расчета плотности.

Я уже пробовал перемещаться по карте (ограничено областью) и "создание кругов "заданного радиуса / расстояния, начиная с верхнего левого угла. Если внутри круга есть события, я считаю точку высокой плотности центром этой группы событий. Чтобы сделать это более "точным", я бы перекрыл круги. Однако, как вы могли заметить, это не совсем точно. Если расстояние / радиус большое число, то координаты точки высокой плотности будут очень далеки от реального местоположения высокой плотности. Кроме того, поскольку круги перекрываются, одни и те же события могут в конечном итоге привести к двум (или более) точкам высокой плотности.

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

Как мне этого добиться? Есть ли математический способ найти такие точки? Я нашел ответы для графиков в Python, но мне не интересны графики, и я работаю в Ruby.

...