Как-то недавно передо мной стала задача определения точек остановки транспорта в разрешенных и неразрешенных местах. Мне были даны координаты всех точек остановки на маршруте и области разрешенных остановок. Каждая область представляла из себя круг, который был описан координатами центра и радиусом.
Идея сводилась к тому, чтобы проверять вхождение каждой точки остановки транспорта в круглые области разрешенных остановок, а если быть точнее, то к расчету расстояния от точки остановки до центра круговой области и сравнение этого расстояния с радиусом этой области.
Долгие поиски в интернете не давали достойного ответа на решение такой, с первого взгляда простой, задачи.
А задача оказалась совсем не простой.
Земля может быть описана как сфера, поэтому для вычисления расстояния между точками на поверхности земли мы можем использовать уравнения для расчета сферического расстояния большого круга. При расчете мы берем сферу радиусом 6372795 метров. Ввиду того что земля на самом деле не сфера, а эллипсоид, - пограшность вычисления расстояния может составлять около 0.5%.
Для расчета использована модифицированная формула гаверсинусов.
Для расчета расстояния между двумя координатами не требуется подключение никаких картографических сервисов, все расчеты выполняются локально средствами 1С. Яндекс карта в данной обработке используется только для наглядного отоборажения возможностей формулы, а также для ее тестирования.