Importing
This chapter describes the process of transforming OSM extracts into A/B Street's map model. These are implementation details; you may be looking for the user guide to importing a new city.
The steps are:
- A large .osm file is clipped to a hand-drawn boundary region, using
osmium - The
convert_osmcrate reads the clipped.osm, and a bunch of optional supplementary files, and produces aRawMap - Part of the
map_modelcrate transforms theRawMapinto the finalMap - Other applications read and use the
Mapfile
The importer crate orchestrates these steps, along with automatically
downloading any missing input data.
The rest of these sections describe each step in a bit more detail. Keeping the docs up-to-date is hard; the best reference is the code, which is hopefully organized clearly.
Don't be afraid of how complicated this pipeline seems -- each step is relatively simple. If it helps, imagine how this started -- just chop up OSM ways into road segments, infer lanes for each road, and infer turns between the lanes.