POI icons

Every kind of place PitStopper looks for along a route, the OpenStreetMap tag it matches on, and the icon that draws it. Rendered from src/poi/categories.js, so this page cannot fall out of step with the app.

The artwork is Pinhead, by Wayside Mapping - CC0-1.0, public domain. Nothing to attribute, nothing to ask. It exists because interface icons make poor map pins: there is no bench, no drinking fountain and no bicycle repair stand in a UI icon set, so a dozen of our categories used to share a droplet or a shopping bag. Pinhead has 2,318 icons drawn for this job.
Pinhead names an icon after what it draws, not what it tags - coffee_mug_with_steam, water_tap_with_drinking_glass, sitting_tank_toilet. Matching our categories to it by OpenStreetMap tag found 12 of 94; by picture it is nearly complete. So every row below was chosen by eye, which is exactly why the choices are published rather than buried. Take them if they are useful: the artwork is public domain and the tags are OpenStreetMap's.
The first four columns try an outline on the SVG the app draws: none, 0.5 px, 1 px and 2 px, measured at the 26 px shown here. It is the glyph's own path stroked underneath it, the same device the .gpz icons use (theirs is baked in), and each sits on the same split swatch as the PNGs so they can be judged side by side. The map pin column puts the same four inside the pin the map draws, in each category's marker colour; there the glyph stays at 15 px and the outline grows outwards. Switch the theme for the light-on-dark case. PitStopper now draws 0.5 px, chosen here, and the .gpz icons are baked at the same proportion.
The two PNGs beside each icon are the ones we send inside a .gpz, which is a zipped GPX that can carry icon images alongside it. An app that reads them (Locus Map 4, GPX Viewer) draws ours instead of its own; everything else, a Garmin device included, ignores them. Tick Compress it (.gpz) on a GPX export and they go with the file, as PNG and SVG unless you choose otherwise: the set for the maps you ride with beside the route, and the other SVG set in a folder of its own. Each one is named PS_<category> and matched by a <sym> of the same name: a reader checks its own icons first, so a file called Restaurant.png would lose to the one Locus already has, and the prefix is what keeps ours distinct.

Those apps want PNG, so the vector art is baked out at 128 px, on a 32-colour palette that cannot be told from the full-colour original at any size an app draws, in two monotone sets: near-black with a white outline for light basemaps, white with a near-black outline for dark ones. The outline is the same path stroked underneath the glyph, which is what stops a one-colour icon vanishing the moment the map beneath it happens to match. Shown here at 32 px, roughly what an app draws; click either for the full-size file. Each swatch is split: the basemap tone that set is drawn for on the left, a mid-tone park green on the right, since a matched background is the easy case and the outline is there for everything in between.