Ответ ниже включает в себя притворство, что Земля является совершенной сферой, которая должна дать более точный ответ, чем трактовать Землю как плоскую плоскость.
Чтобы выяснить радиус набора точек широты / долготы, вы должны сначала убедиться, что ваш набор точек является "полусферическим", т.е. все точки могут вписаться в произвольную половину вашей идеальной сферы.
Ознакомьтесь с разделом 3 в статье «Оптимальные алгоритмы для некоторых задач близости на гауссовой сфере с приложениями» Гупты и Салуджи. У меня нет конкретной ссылки, но я считаю, что вы можете найти копию онлайн бесплатно. Этого документа недостаточно для реализации решения. Вам также понадобится Приложение 1 в «Приближении центроидов для максимального пересечения сферических многоугольников» Ха и Ю.
Я бы не использовал алгоритм Мегиддо для выполнения линейного программирования при тестировании полусферичности. Вместо этого используйте алгоритм Зейделя для решения задач линейного программирования, описанный Раймундом Зайделем в «Мелкомасштабном линейном программировании и выпуклых оболочках, сделанных легким». Также см. «Рандомизированный алгоритм линейного программирования Зейделя» Курта Мелхорна и раздел 9.4 из «Обнаружения столкновений в реальном времени» Кристера Эриксона.
Как только вы определили, что ваши очки полусферические, перейдите к разделу 4 статьи Гупты и Салуджи. В этой части показано, как получить наименьший окружающий круг для точек.
Чтобы выполнить необходимое квадратичное программирование, см. Статью Н. Д. Боткина «Рандомизированный алгоритм для решения квадратичных программ». Этот урок полезен, но в статье используется (1/2) x ^ T G x - g ^ T x, а в веб-учебнике используется (1/2) x ^ T H x + c ^ T x. Один добавляет термины, а другой вычитает, что приводит к проблемам со знаком. Также см. Этот пример проблемы 2D QP . Подсказка: если вы используете C ++, библиотека Eigen очень хороша.
Этот метод немного сложнее, чем некоторые из двухмерных методов, описанных выше, но он должен дать вам более точные результаты, чем полное игнорирование искривления Земли. Этот метод также имеет O (n) временную сложность, которая, вероятно, асимптотически оптимальна.
Примечание: Описанный выше метод может плохо обрабатывать дублирующиеся данные, поэтому вы можете проверить наличие дублирующих точек широты / долготы, прежде чем найдете наименьший вмещающий круг.