Ошибка при определении расстояния между двумя географическими точками с API Яндекс Карт

Пишу скрипт на Python3 по определению расстояния между двумя географическими точками с использованием API Яндекс Карт (api-maps.yandex.ru). Deep Seek написал следующую функцию для этого:

def calculate_route_distance_old(origin, destination):
    """Рассчитывает маршрут через API маршрутизации Яндекс"""
    YANDEX_API_KEY = 'мой-апи-ключ'  # Получите ключ на https://developer.tech.yandex.ru/
    MKAD_COORDINATES = (55.898947, 37.632971)  # Базовая точка МКАД
    import requests
    url = "https://api-maps.yandex.ru/services/route/2.0/"
    params = {
        'apikey': YANDEX_API_KEY,
        'waypoints': f"{origin[1]},{origin[0]}|{destination[1]},{destination[0]}",
        'mode': 'driving'
    }
    
    print(f"Работает calculate_route_distance")
    try:
        response = requests.get(url, params=params)
        response.raise_for_status()
        data = response.json()
        ras = data['route']['distance']
        print(f"расстояние по маршруту: {ras}")
        return data['route']['distance']  # Расстояние в метрах
    
    except Exception as e:
        print(f"Ошибка расчета маршрута: {e}")
        return None

Но при запуске получаю следующую ошибку от API:

{"statusCode":400,"error":"Bad Request","message":"Error validate query: child \"lang\" fails because [\"lang\" is required]"}

Мой АПИ ключ - коорректен, лимитов достаточно. Кординаты адресы при помощи него сервис отдает корректно.


Ответы (1 шт):

Автор решения: DVadimm

Все оказалось "проще". Функция построения маршрутов, необходимая для замера расстояния, при помощи API Яндекса просто на данный момент является платной (от 226 000 руб/год). Вот ответ их службы подержки на мой вопрос:`

"Возможность построения маршрутов в JavaScript API 3.0 является платной. Для этого необходимо использовать ключ от API Получения деталей маршрута — с тарифами на него можно ознакомиться на сайте API Яндекс Карт.

Бесплатных тарифов API Маршрутизатора на текущий момент у сервиса нет. Мы рассмотрим возможность построения маршрутов в JS API 3.0 с использованием только ключа этого сервиса, но каких-либо сроков пока обозначить не сможем. До тех пор есть смысл оставаться на прежней версии API.

--

Виктор А Поддержка Яндекса

При этом координаты точки по адресу Яндекс Карты отдают и на бесплатном тарифе при соблюдении его ограничений (до 1000 запросов в сутки и тд). По ним можно расстояние определить приблизительно (по прямой) по формуле Гаверсинуса. Но она дает погрешность до 40 и более процентов.

→ Ссылка