Маршрут не найден, который должен быть маршрутизируемым на собственной установке Graphhopper
Проблема:
На моей установке Graphhopper (GH), есть некоторые случаи, которые не маршрутизируются, которые, по моему мнению, должны быть маршрутизируемыми. Тот же маршрут маршрутизируется в демо-версии GH, в то время как моя установка использует последний код GH.
Примеры:
Этот маршрут запланирован на демонстрационном сервере GH, в то время как на моей машине появляется ошибка "not found".
Хотя, когда я называю второй пункт в locationIndex
:
LocationIndex index = hopper.getLocationIndex();
QueryResult qr = index.findClosest( place.lat, place.lon, EdgeFilter.ALL_EDGES );
GHPoint3D snappedPoint = qr.getSnappedPoint();
это найдено (приблизительно 20-30 м от пункта). Это заставляет меня полагать, что данные OSM, которые я использую, являются правильными (я дважды проверил, если дороги там подключены и не редактировались в прошлом месяце, потому что я использую данные OSM за месяц).
Это еще один пример EDIT: исправлено с новым набором данных! маршрута, который не планируется на моей машине, в то время как он работает на демонстрационном сервере GH и находится в locationIndex
, Я не изменил код GH.
Конфиг:
Конфигурация, которую я использую на моем сервере, выглядит следующим образом:
graph.dataaccess=RAM_STORE
prepare.chWeighting=no
osmreader.wayPointMaxDistance=1
graph.flagEncoders=bike,foot
web.jsonpAllowed=true
Вопрос:
Что-то, что я могу настроить, чтобы эти маршруты были маршрутизируемыми? Или вы можете указать мне правильное направление, что будет причиной моей проблемы?
РЕДАКТИРОВАТЬ: с новым набором данных, второй пример, который я опубликовал, "исправлено". Первый еще остается..
Также появился новый пример. Кажется, что моя машина маршрутизации не может использовать "основную" дорогу, которую GH использует для достижения результата. Я дважды проверил, совпадают ли кодировщики байк-флагов (все 3 из них) с мастер-версией GH, и они есть. Эта часть была маршрутизируемой с моим предыдущим набором данных OSM, поэтому я посмотрел, что изменилось в данных OSM. К сожалению, я не вижу, что именно изменилось в наборе данных, но для пути к велосипеду, примыкающего к главной дороге, указано значение oneway=true. Может быть, это все еще как-то связано с моими односторонними настройками?
1 ответ
С помощью Karussell мы нашли проблему.
Проблема состоит в том, что некоторые "подсети" в графе удаляются при подготовке графа, потому что они опускаются ниже порога минимального количества узлов, необходимого для маршрутизации закрытого острова. Понижение этого порога может быть сделано с помощью следующих свойств в вашем config.properties
(см. этот вопрос)
prepare.minOnewayNetworkSize=200
prepare.minNetworkSize=100
Это решило бы мои примеры в вопросе. Хотя из-за того, что я создаю подготовленный график для двух транспортных средств (для ног и велосипедов), в текущей сборке Graphhopper этот параметр не используется. Так что это работает только при наличии одного автомобиля на графике.
Текущий выпуск Github для этого можно найти здесь.