Public transport Quality Assurance

From OpenStreetMap Wiki
Jump to: navigation, search
Available languages
English

While transitioning from the old Public transport tagging schema to the newer Public_Transport some inconsistences can appear.

Highway=bus_stop without a public_transport=* tag

The first stage of transitioning from highway=bus_stop to Public_Transport is to apply either public_transport=stop_position or public_transport=platform to each highway=bus_stop

Overpass query

node({{bbox}})[highway=bus_stop][public_transport!~'platform|stop_position'];
out meta;

Overpass turbo

Stop_position or Platform not within a stop_area relation

After tagging stop_positions and platforms, each objects related to a stop should be grouped in a public_transport=stop_area relation.

Overpass query

node({{bbox}})[public_transport~'stop_position|platform ']->.a;
rel(bn.a)[type=public_transport];
node(r)->.b;
(.a; - .b;);
out meta;

Overpass turbo

Stop_position without platforms

In most cases a stop_position should have a platform not far from it

node({{bbox}})[public_transport=stop_position]->.a; // Find stop_positions
(
  node({{bbox}})[public_transport=platform];
  way({{bbox}})[public_transport=platform];
);// Find platforms
node(around:50.0)[public_transport=stop_position]; // Then look around for stop_positions from each platform
(.a; - ._;); // Intersection of the two sets, which give us stop_positions without platforms
out meta; // Needed for JOSM exports

Overpass Turbo

Platform without Stop_positions

Again, this should not be the case

(
  node({{bbox}})[public_transport=platform];
  way({{bbox}})[public_transport=platform];
)->.a; // Find platforms
node({{bbox}})[public_transport=stop_position]; // Find stop_positions
(
  node(around:50.0)[public_transport=platform];
  way(around:50.0)[public_transport=platform];
); // Then look around for platforms near stop_positions.
(.a; - ._;); // Intersection of the two sets, which give us platforms without stop_position
out meta; // Needed for JOSM exports

Overpass Turbo

Public transport objects with operator=* and no network=*

(
  node({{bbox}})[public_transport][operator][network!~'.'];
  way({{bbox}})[public_transport][operator][network!~'.'];
  rel({{bbox}})[public_transport][operator][network!~'.'];
); 
out meta; // Needed for JOSM exports

Overpass Turbo