Обновлено:

Калькулятор расстояния между точками

Когда вам нужно посчитать расстояние между двумя объектами на карте – от дома до школы, между городами или для перемещения точки на заданное количество метров – есть три основных пути: ручной расчет по формулам, использование специальных API и готовых библиотек в программировании, или мгновенный онлайнкалькулятор выше.

Режим расчета расстояния
Результат: км
0.00 км

Расстояние по прямой (как летит птица).

В метрах:
0 м
Азимут:
Важно: Это сферическое расстояние по формуле гаверсинуса. Для расчета по дорогам используйте API маршрутизации (Яндекс, Google).
Как узнать координаты?

1. Откройте Яндекс.Карты или Google Maps.
2. Кликните правой кнопкой мыши по нужному месту на карте.
3. В меню выберите «Что здесь?» или просто скопируйте числа, всплывшие в меню.
4. Вставьте числа в поля выше в формате Широта, Долгота.

Калькулятор принимает координаты двух точек в градусах (широта и долгота) и вычисляет расстояние между ними по прямой линии на поверхности Земли, используя формулу гаверсинуса. Результат выдается в километрах и метрах.

Расчеты по формуле гаверсинуса предполагают идеальную сферическую модель Земли. Для точных измерений на местности или по дорогам используйте специализированные сервисы маршрутизации.

Как рассчитать расстояние по формуле гаверсинуса?

Этот метод дает расстояние по прямой между двумя географическими координатами. Он основан на представлении Земли как сферы радиусом примерно 6371 км.

Формула гаверсинуса в математическом виде:

a = sin²(Δφ/2) + cos φ1 ⋅ cos φ2 ⋅ sin²(Δλ/2)
c = 2 ⋅ atan2(√a, √(1−a))
d = R ⋅ c

где:

  • φ1, φ2 – широты двух точек в радианах,
  • Δφ – разница широт,
  • Δλ – разница долгот,
  • R – радиус Земли (6371 км для результата в километрах).

Чтобы использовать формулу, нужно перевести градусы в радианы: умножьте значение в градусах на π / 180. Пример на JavaScript:

function haversineDistance(lat1, lon1, lat2, lon2) {
  const R = 6371e3; // метры
  const φ1 = (lat1 * Math.PI) / 180;
  const φ2 = (lat2 * Math.PI) / 180;
  const Δφ = ((lat2 - lat1) * Math.PI) / 180;
  const Δλ = ((lon2 - lon1) * Math.PI) / 180;

  const a =
    Math.sin(Δφ / 2) * Math.sin(Δφ / 2) +
    Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);
  const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
  const d = R * c; // расстояние в метрах
  return d;
}

Эта формула использовалась в исследовании istories.media для расчета доступности школ в российских населенных пунктах.

Как использовать API карт для расчета расстояния?

Если вам нужно расстояние по дорогам или с учетом транспортной сети, формулы прямой линии недостаточно. Сервисы карт предоставляют API для расчета маршрутов и матрицы расстояний.

Яндекс.Карты

Для фронтенда можно использовать ymaps.route. Для бэкенда доступен API матрицы расстояний:

https://api.routing.yandex.net/v1.0.0/distancematrix?
origins=55.753215,37.622504&
destinations=27.561481,53.902496&
mode=driving&apikey=ВАШ_КЛЮЧ

Это возвращает расстояние и время поездки между точками по дорогам. Для точной геометрии маршрута используйте API маршрутизатора. coding.likeflow.ru отмечает, что координаты могут отличаться в зависимости от проекций, поэтому для точных значений лучше использовать API того сервиса, который предоставил координаты.

Open Source Routing Machine (OSRM)

Бесплатный открытый проект для расчета маршрутов. Пример запроса:

http://router.project-osrm.org/route/v1/driving/
55.753215,37.622504;27.561481,53.902496?overview=false

Ответ включает дистанцию в метрах.

API карт обычно требуют регистрации и ключа. Для исследований или некоммерческих проектов можно запросить бесплатный доступ.

Как посчитать расстояние в Python для многих точек?

Для массовых расчетов, например, поиска ближайшей школы для каждого населенного пункта, эффективны библиотеки Python.

  1. Подготовка данных. Используйте pandas для работы с таблицами координат.
  2. Перевод в радианы. Координаты в градусах конвертируйте с помощью numpy.
  3. Расчет матрицы расстояний. Функция haversine_distances из scikit-learn вычисляет расстояния между всеми парами точек быстро.

Пример из istories.media:

import pandas as pd
import numpy as np
from sklearn.metrics.pairwise import haversine_distances

places_coords = np.array([[...]])  # массив широт, долгот населенных пунктов
schools_coords = np.array([[...]])  # массив школ

places_rad = np.deg2rad(places_coords)
schools_rad = np.deg2rad(schools_coords)

dist_matrix = haversine_distances(places_rad, schools_rad) * 6371
  1. Выбор ближайшего объекта. Для каждого населенного пункта найдите минимальное значение в строке матрицы – это расстояние до ближайшей школы. Добавьте результаты в исходную таблицу.

Этот подход позволяет обрабатывать тысячи точек за секунды.

Как переместить точку на заданное расстояние?

Иногда требуется не посчитать расстояние между точками, а переместить существующую точку на определенное количество метров в заданном направлении (азимуте).

Формулы решения прямой геодезической задачи

Используются формулы из геодезии. Для перемещения на расстояние d от точки с координатами (φ1, λ1) по азимуту θ (в радианах) новые координаты (φ2, λ2) вычисляются так:

var φ2 = Math.asin(
  Math.sin(φ1) * Math.cos(d / R) + Math.cos(φ1) * Math.sin(d / R) * Math.cos(brng)
);
var λ2 =
  λ1 +
  Math.atan2(
    Math.sin(brng) * Math.sin(d / R) * Math.cos(φ1),
    Math.cos(d / R) - Math.sin(φ1) * Math.sin(φ2)
  );

где R – радиус Земли, все углы в радианах.

Методы API Яндекс.Карт

В JavaScript API есть метод solveDirectProblem:

var startPoint = [60, 30];
var azimuth = Math.PI / 4; // 45 градусов
var direction = [Math.cos(azimuth), Math.sin(azimuth)];
var path = ymaps.coordSystem.geo.solveDirectProblem(startPoint, direction, 200000).pathFunction;

Это перемещает точку на 200 000 метров (200 км) в направлении азимута. coding.likeflow.ru рекомендует использовать API карт, если координаты получены от них, для сохранения точности проекций.

Для небольших перемещений (например, 30 метров) можно использовать приближение: 1 градус широты ≈ 111 км, поэтому изменение широты на 30 метров составит примерно 30 / 111 111 градуса. Для долготы изменение зависит от широты: 30 / 111 111 / cos(φ) градуса.

Какой метод выбрать?

  • Одна пара точек, быстро – онлайн-калькулятор расстояния.
  • Расчет по прямой для множества точек – формула гаверсинуса или Python со scikit-learn.
  • Точное расстояние по дорогам – API Яндекс.Карт или OSRM.
  • Перемещение точки на карте – формулы прямой задачи или solveDirectProblem Яндекс.Карт.

Все методы работают с координатами в формате (широта, долгота). Для 2026 года данные формулы и API остаются актуальными, хотя конкретные endpoints сервисов могут обновляться.

Часто задаваемые вопросы

Как посчитать расстояние между двумя адресами, если известны только названия?

Нужно сначала получить координаты адресов через геокодирование (например, API Яндекс.Карт или Google Maps). Затем используйте формулу гаверсинуса или онлайн-калькулятор для расчета расстояния по прямой между полученными координатами.

В чем отличие расчета расстояния по прямой и по дорогам?

Расчет по формуле гаверсинуса дает прямую линию между точками на поверхности Земли, игнорируя дороги и препятствия. Для точного расстояния по дорогам используйте API маршрутизации (Яндекс, OSRM), который учитывает транспортную сеть.

Как переместить точку на карте на определенное расстояние (например, 30 метров)?

Для этого нужны формулы решения прямой геодезической задачи. Если известны начальные координаты, азимут (направление) и расстояние, новые координаты вычисляются через функции синуса и косинуса. Упростить задачу можно методами API карт, например ymaps.coordSystem.geo.solveDirectProblem.

Как выбрать ближайший объект (например, школу) для множества населенных пунктов?

Создайте матрицу расстояний между всеми точками с помощью формулы гаверсинуса или библиотек Python (scikit-learn). Для каждого населенного пункта найдете минимальное значение в строке матрицы – это расстояние до ближайшего объекта.

  1. Площадь по диаметру калькулятор – расчет онлайн 2026
  2. Калькулятор перевода системы координат онлайн
  3. Калькулятор масштаба онлайн – быстрый расчет размеров чертежей и карт
  4. Как рассчитать купол: формулы и параметры
  5. Калькулятор площади многоугольника: расчет по координатам и сторонам
  6. Калькулятор площади усеченного конуса – онлайн расчет