Adding Road Attributes to OpenStreetMap

Here is part II of the video tutorial about editing OpenStreetMap with help of Mapillary imagery by our Ambassador Nuno. This time we take a look at road attributes.

Last time, we went over how to add building attributes to OpenStreetMap, based on our Ambassador Nuno's video tutorial. This time, let’s move on to roads. This won’t be an exhaustive list of road attributes that you can add, but hopefully it gives you an idea of how useful an image can be for mapping. Make sure to also check out the final part of the series about adding park attributes


An obvious place to start is the surface type. The OpenStreetMap wiki has a comprehensive list of the different surfaces you might encounter. Following Nuno’s lead, we can see he is adding information to Koningslaan. Using the imagery, he has determined the surface=paving_stones.


Another easily observable attribute is the number of lanes. Select the lanes tag and give it the value corresponding to the number of lanes. The value should be the total number of lanes, so Nuno has put 2. Some roads have more lanes in one direction than the other, you can use the lanes:forward=* or lanes:backward=* to specify the difference. Forward corresponds to the way you have selected and backward to the unselected way heading in the opposite direction. See the wiki entry for more information.

Adding lanes to OpenStreetMap Adding lanes and surface type to road way

Parking lane

On a residential street like the one Nuno is editing, parking information is really useful. Looking around, Nuno can see that there is parallel parking on both sides. To show this, he has added the parking:lane:both key.


Similarly, you can add information useful to pedestrians. Here, Nuno has added the key sidewalks with the value both to show that both sides of the road have a sidewalk.

If you’re interested in improving pedestrian routing, it is worth checking out the OpenSidewalk project. They’re encouraging the creation of separate ways for sidewalks. This allows for much more accurate pedestrian routing tools, particularly for the mobility impaired who need information such as the location of curb cuts.

Traffic signs

In addition to the above, there is a huge amount of data you can add, using detected traffic signs.

The speed limit is obviously a very important attribute for any road. You can add this to OpenStreetMap using the Maxspeed tag. If you enable the Traffic Sign Overlay in the editor, you’ll be able to see all detected traffic signs in the area. You will find this option under Map Data. You’ll quickly be able to see max speed, stop signs, no entry, and many other traffic signs Mapillary can detect.

Take a look at our API documentation for a full list.


Adding trees to the map can be helpful for both rendering tools and for environmental conservation. Citizens, governments, and different groups are getting better at cataloguing trees of importance throughout an area.

You can add trees by creating a node and giving it the tag nature=tree. You can then get pretty much as detailed as you like for this. Check out the wiki for a full list of tags you can use to use to describe a tree.

Nuno is very talented, but he’s not an arborist, so he has opted to add the Fixme tag so that someone more familiar with trees can add other attributes.

Once you’ve added the attributes for one tree, you can copy and paste the node for other trees of the same type that you come across.

Adding trees to OpenStreetMap Copying and pasting trees

Street lamps

While you’re adding trees, you’ll also notice street lamps along the road. You can add these very easily by searching id for street lamps. Determine the type of lamp if you can. In some situations the street lamp may have a unique identifier that marks its location and is recognised by local authorities. If this is the case, you can add it by using the tag ref with the value = to the number.

Adding street lamps to OpenStreetMap Identifying street lamps in iD editor using the Mapillary photo overlay

Another cool thing you can do with street lamps is mark which surrounding objects they illuminate. This can be done by adding the tag lit=yes to the object. Doing so allows the rendering of maps like this:

Rendering lit areas with Light Map A rendering of lit areas using Light Map

Bike racks

Now, given we’re editing in Amsterdam, it would only be proper to make sure we’re keeping cyclists informed. In this part of the video, Nuno shows us how to add bike racks. You can mark these by adding a node and searching for bicycle parking in iD or adding the amenity=bicycle_parking tag.

If you can count the number of available slots, add the capacity=# tag. You can also add other tags to distinguish it as a shared bicycle service.

There's a lot more to adding road data that we haven't covered, but we hope this serves as a useful introduction. Stay tuned for the third part of Nuno's tutorial next week!


Continue the conversation