¿Cómo convertir datos de OSM a PostgreSQL para fines de enrutamiento?

10

Estoy creando una aplicación de enrutamiento usando OpenStreetMap. Actualmente, mi tarea es convertir los datos de un archivo OSM a PostgreSQL.

Leí sobre osm2pgsql, pero el problema es que dice que osm2pgsql no es adecuado para el enrutamiento. También leí sobre Osmosis, pero hay algo sobre el puerto de rieles, lo que creo que significa que necesito aprender Ruby in Rails. Traté de estudiar RoR en el pasado y me resultó muy difícil aprender.

Estoy usando PHP para mi aplicación. ¿Cómo puedo extraer los datos del archivo OSM y exportarlos a mi PostgreSQL? Sé que podría estar perdiendo algo aquí, pero soy un novato cuando se trata de la aplicación de mapeo. Espero que alguien pueda ayudarme. ¡Gracias! :RE

jalbautista
fuente

Respuestas:

11

El enrutamiento en Postgres / PostGIS es manejado por la biblioteca pgRouting desde http://pgrouting.org

Parece que ya se ha escrito un script para manejar osm directamente en pgRouting en http://www.pgrouting.org/docs/tools/osm2pgrouting.html

Deberá instalar pgRouting dentro de Postgres antes de ejecutar el script osm2pgrouting.

Kelso
fuente
El enlace ahora es: pgrouting.org/docs/tools/osm2pgrouting.html
mattwigway
gracias, he editado mi respuesta original para reflejar esta actualización. No pude encontrar el ejemplo completamente trabajado, por lo que he eliminado este enlace.
Kelso
3

También preste atención a osm2po ( http://osm2po.de ): podría generar scripts sql compatibles con pgRouting y, en algunos casos, es más fácil de usar que osm2pgrouting (por ejemplo, en la plataforma MS Windows ya que osm2po está escrito en Java).

Andrés
fuente