У меня есть несколько lat lng, и я хочу, чтобы центральная точка всей этой lat lng... например, место встречи, которая будет ближе всего ко всей этой lat lng.
Найдите центральную точку нескольких lat lng
Ответы (2)
Вам нужно рассчитать среднее положение этих координат:
float lat=0, lng=0;
for(int i=0; i<num_coords; ++i) {
lat += lats[i];
lng += lngs[i];
}
lat /= num_coords;
lng /= num_coords;
Когда расстояние между точками составляет менее 500 миль (800 км), этот метод дает близкое приближение к истинной географической средней точке.
На самом деле это два разных момента. Посмотрите здесь.
- Центр тяжести
Географическая середина, иногда называемая центром тяжести, центром масс или центроидом, является средней координатой набора точек. Если вы отметите несколько точек на земном шаре вместе с географической серединой, географическая середина действительно будет выглядеть так, как будто она находится в центре. Представьте себе, что несколько грузов размещены в разных точках земного шара, а затем земной шар может свободно вращаться до тех пор, пока самая тяжелая часть земного шара не будет притянута силой тяжести, пока она не окажется обращенной вниз. Тогда самая низкая точка на земном шаре будет географической средней точкой для всех взвешенных местоположений.
Географическая средняя точка рассчитывается путем нахождения центра тяжести местоположений. Широта и долгота местоположений преобразуются в декартовы координаты (x,y,z). Рассчитывается средняя координата x, y и z. Эта средняя координата находится внутри Земли и является истинным центром масс, и можно провести линию от центра Земли, проходящую через эту точку, а затем к поверхности Земли, которая является географической средней точкой. Средние координаты x, y и z преобразуются в широту и долготу средней точки.
Данная формула предполагает сферическую землю и точки на уровне моря. Ответ будет намного сложнее, если нужна более точная модель.
- Центр минимального расстояния
Эта точка минимизирует комбинированное расстояние перемещения из набора точек. Центр минимального расстояния — это точка абсолютного минимального расстояния перемещения, однако она не пытается уравнять величину пройденного расстояния от других точек.
Калькуляторы есть здесь
Методы описаны здесь
Обратите внимание, что предполагается сферическая земля. Если требуется более высокая точность, решение будет намного сложнее.