В настоящее время я использую HERE для API-интерфейсов Publi c Transit, реализованных с использованием REST для Python 3.7.
Моя цель - получить маршруты для прогулок между двумя точками в моем школьном кампусе. Для этого я попытался включить параметр "modes"
, значением которого является строка "walk"
, а также другие параметры, требуемые API.
Однако меня всегда встречает код ошибки GW100, сопровождаемый по тексту «Недопустимый запрос: запрос недействителен ни для одной из указанных схем».
Основной бит кода, который я использовал, является следующим, что достаточно для воспроизведения ошибки:
import requests
from datetime import datetime
current_location = "1.298680,103.771922"
destination_coords = "1.29437,103.78436"
apiKey = "insert API Key"
modes = "walk"
routing_base_url = "https://transit.ls.hereapi.com/v3/route.json"
time = datetime.now().replace(microsecond = 0)
time = time.isoformat()
maximum = 1
graph = 1
maneuvers = 1
routing_params = {"apiKey": apiKey, "dep": current_location, "arr": destination_coords, "time": time, "max": maximum, "graph": graph, "maneuvers": maneuvers,"modes": modes}
raw_data = requests.get(url = routing_base_url, params = routing_params)
data = raw_data.json()
print(data)
Выполнение кода в Python приводит к следующему сообщению об ошибке:
{'Res': {'serviceUrl': 'https://transit.ls.hereapi.com/transit/v3/route.json', 'Message': {'code': 'GW100', 'level': 'E', 'text': 'Invalid request: Request is not valid under any of the given schemas'}}}
Кажется, ошибка связана с параметром "modes"
. Я проверил руководство API Publi c Transit, чтобы убедиться, что "modes"
имеет правильный тип и формат: строку, содержащую названия требуемых видов транспорта. Список всех параметров, принятых API, перечислен здесь , а список режимов транспорта для "modes"
указан здесь .
Полное удаление из Словарь routing_params
или установка его значения в виде пустой строки ""
приводит к созданию маршрута с помощью API. Однако на маршруте будут использоваться другие виды транспорта, помимо пешеходного движения, чего я не хочу.
В чем здесь проблема? "modes"
уже имеет правильный тип и формат, но, похоже, ошибка указывает на иное.