Обнаружена ошибка GW100 при ограничении транспортных режимов только для прогулок в HERE Publi c Transit API - PullRequest
0 голосов
/ 07 января 2020

В настоящее время я использую 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" уже имеет правильный тип и формат, но, похоже, ошибка указывает на иное.

1 Ответ

0 голосов
/ 07 января 2020

Спасибо, что сообщили об этом. Мы попросим команду исправить это на портале. Похоже, правильный параметр mode = "walk". Пожалуйста, обновите это в своем коде, и оно должно работать.

Надеюсь, это поможет.

...