From OpenStreetMap Wiki
< JOSM‎ | Plugins
Jump to navigation Jump to search

Terracer is a JOSM plugin to aid in tracing terraced houses (row houses, townhouses) from orthoimagery.

Rendered results after using the Terracer plugin


Terracer takes a simple quadrilateral way and creates multiple smaller quadrilaterals. The original geometry is not modified. This is useful when tracing terraces of buildings from aerial imagery and was written to "scratch an itch" after I spent ages doing this manually.

It is becoming easier to do this sort of work from increasingly comprehensive and detailed aerial imagery from Bing, OpenAerialMap and even DIY UAVs. There are several places in the world where this work has already started, see London, Karlsruhe and many more...


Download terracer.jar or follow the general procedure: JOSM/Plugins#Installation. After successful installation, you should see a new Terrace action in your JOSM tools menu.


Identify the terrace you wish to draw and trace over it. If it's a rectangle then it's a good idea to use the orthogonalise tool (or use JOSM/Plugins/BuildingsTools). Please use one straight line segment for each end, or the plugin won't be able to detect them.

Terracer Step 1.png

Find out the house numbers by surveying. Select the terrace outline way and use the Terrace tool (Shift-T by default) (optionally also select the street to auto-complete the road name - see below). It will ask for the range of house numbers and the interpolation between them as well as, optionally, the road name. The road name auto-completes from a list of name tags on highways that are loaded; note that the auto-completion is case-sensitive.

Bugs: (version: 32158):

  • Numbers must be numeric at entry, although may be changed afterwards (eg from 2 to 2a)
Terracer Step 2.png

After clicking OK, you are left with the houses selected so that entering additional shared tags is easier. The Terrace tool also optionally enters all the houses in a terrace into a relation, which is useful for keeping track of the individual houses in the terrace and making it harder to accidentally delete them. If you are happy with the terrace then the construction geometry can be deleted.

Bugs: (version: 32158):

  • Creating a terrace with more than one house whilst “keep outline way” is de-selected will crash Terracer
  • Creating a terrace with “create an associatedStreet relation” selected but the Street unselected will create a broken relation
  • After clicking OK whilst “keep outline way” is de-selected, you are left with the street selected & the houses de-selected
Terracer Step 3.png

As there is an ambiguity about in which direction the numbers ascend, the terrace will sometimes need to be reversed. Select all houses, make sure that the base outline (‘construction geometry’) has been removed, and use the Reverse Terrace tool (Shift-R by default or Ctrl+Alt+Shift+V). Note: in previous versions it was possible to just select a single house at one end of the terrace.

Terracer Step 4.png

After applying the Reverse Terrace tool the numbers of the houses have been reversed along the terrace.

Terracer Step 5.png

Advanced Usage

Select street to set addr:housenumber=* Tag

You can select two ways when using this tool: The building outline, and the street these houses belong to. (At least the tags highway=* and name=* are required on the street; the outline needs to be a closed way.) Then the houses will be tagged addr:street=street name and the street will be (optionally) added to an associatedStreet relation. If you create another block of houses, and have the same street selected, then those houses will be added to the existing relation.

Bugs: (version: 32158):

  • addr:street will be auto-added to each house in a terrace one-time only (the first time that an associatedStreet relation is created). Once that relation exists, the tag will (normally - it is not consistent) not be auto-added to houses in any subsequent terraces (thus, you are advised to copy/paste the key+value for all subsequent terraces) (associatedStreet relations are correctly added in all circumstances).

Make use of old address nodes

You can also select additional nodes before using the tool. First you can select nodes that are at least tagged as address nodes (works with version >= 24713). When calling Terracer they are used to automatically populate the fields “List of Numbers” and “Segments” as long as the outline is tagged as building.

Terracer ad step1.png

When clicking OK, Terracer will produce the same result as when you entered the numbers manually. Only it deletes the address nodes afterwards and copies any additional tags on the new respective outline.

One special mode allows you to easily merge a single address node with a single outline. Just select one address node and the outline, press Shift+T and you’re done. There’s no dialog to answer.

Select node to fix the direction of numbering (starting point)

As always the decision in which direction the numbers ascend depends on where the starting point of the outline is and in which direction it runs. Since this isn’t that easy to remember you can enforce it by additionally selecting one node on the outline (in versions >= 24697).

Result without selecting an additional node (or the lower or upper right one):

Terracer ad step2a.png

Result when additionally selecting the lower or upper left node:

Terracer ad step2b.png

See Also