0

Problem

When running osm2pgrouting on a typical .osm file with the --addnodes option, osm_relations table stays empty.

To Reproduce

osm2pgrouting -f home/map.osm -c "/usr/local/share/osm2pgrouting/mapconfig.xml" -d city_routing -U [username] -W [password] --clean --tags --addnodes

Expectation

I use the --addnodes flag as per the documentation and I can see that osm_nodes and osm_ways tables do get populated. However, osm_relations has 0 records after running osm2pgrouting and "Final osm_relations:" is never mentioned in the output:

Creating tables...
TABLE: ways_vertices_pgr created ... OK.
TABLE: ways created ... OK.
TABLE: pointsofinterest created ... OK.
TABLE: configuration created ... OK.
TABLE: osm_nodes created ... OK.
TABLE: osm_ways created ... OK.
TABLE: osm_relations created ... OK.
Opening configuration file: /usr/local/share/osm2pgrouting/mapconfig.xml
    Parsing configuration

Exporting configuration ...
  - Done
Counting lines ...
  - Done
Opening data file: home/map.osm  total lines: 175957
    Parsing data

Current osm_nodes:      48000
Final osm_nodes:        48375
Current osm_ways:       6000
Final osm_ways:         6320

...

End Of file


    Finish Parsing data

Adding auxiliary tables to database...

Export Ways ...

...

Creating indexes ...

Processing Points of Interest ...

Adding functions for processing Points of Interest ...

To process pointsOfInterest table:
osm2pgr_pois_update(radius default 200, within default 50)

  - Using areas of (radius)mts on POIS
  - Using edges that are at least (within) mts of each POI
POIS that do not have a closest edge is considered as too far
#########################
size of streets: 6320
Execution started at: Tue May 30 10:07:09 2023
Execution ended at:   Tue May 30 10:07:21 2023
Elapsed time: 11.767 Seconds.
User CPU time: -> 1.12268 seconds

Sample Data

A sample .osm file is attached (please rename from txt to osm if needed), however I have tried other .osm exports that contain osm relations with the same result.

haywards-heath-uk-small-extract.txt

Platform/versions

SELECT version();

PostgreSQL 15.3 (Debian 15.3-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit


SELECT postgis_full_version();

POSTGIS="3.3.2 4975da8" [EXTENSION] PGSQL="150" GEOS="3.9.0-CAPI-1.16.2" PROJ="7.2.1" LIBXML="2.9.10" LIBJSON="0.15" LIBPROTOBUF="1.3.3" WAGYU="0.5.0 (Internal)"


SELECT pgr_version();


3.4.1

Questions

I see that in the source code there is a the AddRelation function. Does it ever get called?

Is there any way I can modify the code of osm2pgrouting to make it populate the osm_relations table?

1 Answers1

0

From what I can tell, that functionality was removed for some reason. addrelations flag was removed in this commit.

To answer your question, the method AddRelation is never called, but the description for addnodes states that it imports "Import the osm_nodes, osm_ways & osm_relations tables.", so it's most likely that they have a bug (there's this issue open). If I were you, I'd try to use a different tool to import relation data, like osm2pgsql.