Несколько очков найти очки встречи - PullRequest
0 голосов
/ 15 января 2019

Я сохранил много точек с широтой и долготой в моей базе данных.

Теперь я хотел бы найти «точку встречи» (= наименьшую сумму всех расстояний от каждой точки в базе данных до точки x -> «точка встречи»)

Есть ли какой-нибудь алгоритм для решения этой проблемы или мне лучше приблизить результат?

1 Ответ

0 голосов
/ 15 января 2019

Место встречи (как описано в вопросе) - это просто среднее значение очков в некотором смысле. Насколько сложный ответ зависит от того, насколько далеко друг от друга находятся ваши очки. Если они все относительно близки (скажем, в пределах города), то вы можете просто усреднить значения широты и долготы, поскольку Земля локально довольно близка к плоскости.

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

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

...