About the Node, Street, and City Data


This Wiki is all about nodes, streets and cities

  1. What they are and where the data comes from
  2. How they are counted, and
  3. Strategies to complete the hard-to-get ones

Definitions & Source of Data

Note: All of this data comes from OpenStreetMap (OSM). It’s accessed via queries to a Overpass.

  • Nodes: these are the “atoms” or building blocks of CityStrides. They are the individual points which make up a street.

  • Streets: streets are essentially collections of nodes, and are the element that Striding is all about! OpenStreetMap itself doesn’t have a concept of “street”. Instead, there are many smaller collections of Nodes that are called Ways. A “street” as we know it may exist in OSM as a single Way record or it may exist as several Way records. This Google Doc - CityStrides Street Query - contains a full list of road types and the full/explained query that CityStrides uses to import data.

  • Cities: this is the top of the data hierarchy in CityStrides, and is again defined by OSM. Your page will show a completion percentage for every city where you have completed at least one street.

For more information on OpenStreetMap, see About OpenStreetMap

Known issues or works in progress

  • Nodes are inaccessible: see section below

  • Nodes or street data are incorrect: If there’s something wrong about a Street or its Nodes in CityStrides, then the data should be corrected in OSM. As of April of 2020, I’m still working on a way to update the data in CityStrides with updates from OSM. Once that work is complete, the updates in OSM will make their way into CityStrides.

  • Street has nodes all over: Because of this lack of “street” record, the underlying CityStrides code needs to build its own understanding of a Street. This is (currently; April 2020) done by collecting all the Way records in one city with the same name & collecting all of those together as a Street. This doesn’t always work as expected :grimacing: which is why some cities have a Street with its Nodes scattered in separate areas around the city.

  • Cities are unambiguous: there are multiple overlapping city definitions

  • City is missing or otherwise incorrect: read or add to this tracker to help fix issues

Making them Count

  • Nodes: if you run (ie your GPS data has a point that is) within 25m of a node, it is counted as complete. You may capture nodes on streets you weren’t running on, or miss nodes on a street you did run based on this logic

  • Streets: if you complete 90% of the nodes on a street, the street will be considered complete. For streets with less than 10 nodes, you need to complete every node to complete the street (not enough for you? Check out the “hard mode” discussion for more!)

  • Cities: the percentage complete of a city is shown below. Discussions have previously arisen considering other completion metrics (like completed nodes/total nodes, or completed distance/total distance, however these are not currently active.

Percentage Complete = Count of Streets Completed in City / Total Count of Streets in City

Capturing Inaccessible Nodes

What about those nodes that are on private property, behind a fence, or in the middle of a building/body of water/other?

There are multiple strategies to deal with these nodes in CityStrides

  1. Correct the data: you can manually edit the underlaying data in OpenStreetMap. (Note that a regular connection between OSM and CityStrides is presently under development)

  2. Ignore the node: the stoic’s approach is to just ignore the fact it’s there and move on (okay, none of us do this, so what else?)

  3. Manually Mark Complete: this feature exists exactly for this reason. The street will be marked complete and you can carry on - you can do this by visiting the Street’s page and clicking the mark as manually complete button

  4. Fabricate the data: manually create a .gpx file with the two required data points, and load it to your Strava (ethically questionable, why not just use the “mark complete” option?)