Страница 1 из 1

Расчет пути по дорожному графу

Добавлено: 04 июн 2013, 12:02
andy
Добрый день.

Нужна помощь для создания API аналогичного "API матрицы расстояний Google" https://developers.google.com/maps/docu ... rix/?hl=ru
Данные передаваемые API - координаты места отправления и места назначения в формате: 56.110690,36.781989
API должен возвращать расстояние в метрах.
Расчет пути производится в пределах одного города.
Основные требование: время расчета - не более 3 сек (одновременных запросов до 5ти).
Желательно, что бы API работал под Ubuntu Server.
Если данная задача выполнима, какая может быть стоимость за работу и какое необходимо железо для сервера?

Re: Расчет пути по дорожному графу

Добавлено: 04 июн 2013, 12:51
trir
Взять дороги из OSM, трансформировать в UTM. Построить дорожный граф (можно в QGIS). Загрузить граф в PostGIS. Написать API. Но 3 сек - это круто, надо будет очень постараться, чтобы добиться такой скорости.

Re: Расчет пути по дорожному графу

Добавлено: 04 июн 2013, 13:52
andy
trir писал(а):Взять дороги из OSM, трансформировать в UTM. Построить дорожный граф (можно в QGIS). Загрузить граф в PostGIS.
Именно с этим есть проблема и не обойтись без сторонней помощи.

Re: Расчет пути по дорожному графу

Добавлено: 04 июн 2013, 14:03
trir
здесь должно быть всё готовое http://pgrouting.org/

Re: Расчет пути по дорожному графу

Добавлено: 04 июн 2013, 15:05
andy
trir писал(а):здесь должно быть всё готовое http://pgrouting.org/
Возникает проблема с установкой pgRouting при выполнении скрипта routing_core_wrappers.sql, что именно не так понять не получается и учитывая почти полное отсутствие мануалов гугл адекватного ответа не дает:
sudo -u postgres psql -U postgres -f /usr/share/postlbs/routing_core_wrappers.sql
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
psql:/usr/share/postlbs/routing_core_wrappers.sql:106: ERROR: type "geometry" does not exist
psql:/usr/share/postlbs/routing_core_wrappers.sql:149: ERROR: type "geoms" does not exist
psql:/usr/share/postlbs/routing_core_wrappers.sql:199: ERROR: type "geoms" does not exist
psql:/usr/share/postlbs/routing_core_wrappers.sql:248: ERROR: type "geoms" does not exist
psql:/usr/share/postlbs/routing_core_wrappers.sql:397: ERROR: type "geoms" does not exist
psql:/usr/share/postlbs/routing_core_wrappers.sql:449: ERROR: type "geoms" does not exist
psql:/usr/share/postlbs/routing_core_wrappers.sql:591: ERROR: type "geoms" does not exist
psql:/usr/share/postlbs/routing_core_wrappers.sql:639: ERROR: type "geoms" does not exist
psql:/usr/share/postlbs/routing_core_wrappers.sql:775: ERROR: type "geoms" does not exist
psql:/usr/share/postlbs/routing_core_wrappers.sql:831: ERROR: type "geoms" does not exist
psql:/usr/share/postlbs/routing_core_wrappers.sql:908: ERROR: type "geoms" does not exist
psql:/usr/share/postlbs/routing_core_wrappers.sql:943: ERROR: type "geoms" does not exist
psql:/usr/share/postlbs/routing_core_wrappers.sql:998: ERROR: type "geoms" does not exist
psql:/usr/share/postlbs/routing_core_wrappers.sql:1133: ERROR: type "geoms" does not exist

Re: Расчет пути по дорожному графу

Добавлено: 04 июн 2013, 16:31
givchik
Это из-за того что не установлен PostGIS (надстройка для работы с пространственными данными)

Re: Расчет пути по дорожному графу

Добавлено: 04 июн 2013, 19:27
andy
givchik писал(а):Это из-за того что не установлен PostGIS (надстройка для работы с пространственными данными)
Спасибо, postGIS был установлен не хватало: CREATE EXTENSION postgis;
Теперь все установлено, загружен дорожный граф из *.shp, но что дальше?
Есть ли рабочий пример? Имеет ли значение в какой системе координат был *.shp?

Re: Расчет пути по дорожному графу

Добавлено: 10 июн 2013, 19:51
programmer76
OSRM вам в помощь

скорость работы потрясающая в пределах города доли секунды.

http://map.project-osrm.org/