2014-08-13 6 views
0

Я работаю над проектом, где мы собираемся найти самый короткий или быстрый маршрут от точки А до точки В. Я смотрел на таблицы, созданные osm2pgsql. И мне интересно, как я представляю дорогу, препятствуемую после того, как osm был загружен в нашу базу данных. Наш проект будет опираться на osm, чтобы наметить все дороги, в которых мы также будем иметь оператора, который будет смотреть видео в реальном времени на дорогах. В этот момент, если оператор видит, что дорога закрыта, мы хотим обновить базу данных, чтобы отразить эту дорогу, которую препятствуют скажутся сбитым деревом.Как установить улицу, заблокированную в planet_osm_line/pg_route

Я смотрел на все столбцы, и единственный, что выделяется в моей голове, является барьером. Мне не удалось найти документацию о том, что представляет каждый столбец, и как pg_route учитывает каждый из них при создании маршрута. То, что я ищу, - это столбец, который, когда pg_route смотрит в базу данных и видит дорогу, говорит, что дороги заблокировали его пропустить?

ответ

1

Это хороший вопрос для gis.se ...

Первая вещь pg_routing не может маршрутизировать через данные, полученные с помощью osm2pgsql - эти данные не сеть. Вам нужны данные, генерируемые osm2po или osm2pgrouting, и эти данные совершенно разные.

Вторая вещь - такой столбец нет. В каждой функции pg_routing вы передаете sql, который будет выбирать данные для поиска маршрута, поэтому вы решаете, какой край будет в этом наборе данных, а какой нет - не проблема добавить дополнительный столбец в таблицу с ребрами.

Это ссылка на pgrouting workshop, он поможет вам от всего процесса импорта данных в созданный ранее первый маршрут. Для импорта данных используется osm2pgroutin, но я предлагаю вместо этого использовать osm2po.

+0

Так что мне нужно удалить таблицы и данные, созданные osm2pgsql, и использовать osm2po? – Jeremy

+0

Если вам нужно только то, что это нужно, это правильно, если вам нужна визуализация, вам тоже понадобится. Osm2po создает только одну таблицу и используется только для маршрутизации – Jendrusk

+0

Я добавил некоторую информацию о пошаговой инструкции – Jendrusk

1

Итак, как Jendrusk упоминалось, при создании маршрута вы пройдете функцию запрос SQL для выбора края для графа вы хотите, чтобы решить, «выберите * из краев, где the_geom & & < BBOX>» Вы можете моделировать завалы, используя точку и радиус, линии или полигоны, которые вы хотите, чтобы маршрут, чтобы избежать путем добавления в запрос выше избегания зон нравится:

«выберите * из краев, где the_geom & & < BBOX> и не st_dwithin (the_geom, точка , радиус), а не stdwithin (the_geom, line_or_polygon, 0,0) '

Если у вас есть много этих исключений, поместите их в таблицу и выполните объединение, чтобы устранить края, которые используются для построения графика. Если кромки отсутствуют, маршрут - это способ найти способ избежать уклонения.

 Смежные вопросы

  • Нет связанных вопросов^_^