The goal of this sub-project is to improve the address coverage in Luxembourg. Having all addresses in OpenStreetMap would greatly improve routing, a functionality used by many people to navigate from point A to point B, as the routing could be done door-to-door instead of street-to-street.
This page aims to describe how addresses are mapped in Luxembourg.
While there are multiple ways of mapping addresses in OpenStreetMap, we use the Karlsruhe Schema. This address schema does not rely on relations and is therefore easier to understand for beginners.
The tag name=* should contain the street name written on the street sign. If there is a Luxembourgish translation on the sign, please tag it in name:lb=*. If there is a German translation, use name:de=*.
Note that the street name should follow the following conventions:
- Contain all accents - Example: "Rue de l'Église" instead of "Rue de l'Eglise"
- Capitalize the first letter of the name - Example: "Rue de l'Église" instead of "rue de l'Église"
- Don't capitalize words such as "de, du, des, la, le, les" - Example: Avenue du Bois" instead of "Avenue Du Bois"
The following tags are used to map streets:
|highway=*||Street is a way|
|name=street name||Name of the street|
|postal_code=post code||Post code of the street according without the country prefix (eg. 1234 and NOT L-1234)|
|is_in:city=city name||Name of the city the street is in|
You can map the address on the building itself (closed way), or as a node on top of the building.
Note that the house number should follow the following conventions:
- If there are letters in the house number, capitalize them - Example: "7A" instead of "7a"
- Don't start the numbers with a 0 - Example: "7" instead of "07"
- If a building has a range of house numbers, don't insert white spaces - Example: "7-9" instead of "7 - 9"
Addresses should be tagged according to the following schema (Karlsruhe Schema):
|building=yes||(Assuming that you are adding the addresses on a building)|
|addr:country="LU"||ISO Country Code of Luxembourg|
|addr:city=name||Name of the city/village|
|addr:postcode=post code||Post code of the city/village without the country prefix (eg. 1234 and NOT L-1234)|
|addr:street=name||Name of the street|
The following sections will provide a step by step on how to map addresses in Luxembourg. Note that this workflow description is not the only way to map the addresses in Luxembourg! Feel free to use whatever Editor you want, the results will (hopefully!) be the same :)
Step 1: Prerequisites
If you decide to use JOSM, the recommended plugins are:
- BuildingTools - Used to quickly draw buildings (Default shortcut is B)
- Terracer - Used to draw terraced houses
- OpenData - Extends the data formats supported by JOSM
Step 2: Drawing building outlines
Ideally, the building outlines should be drawn before adding the addresses. To do this, follow the following recommendations:
- Use the most recent imagery!
- The BuildingTools plugin helps you to draw rectangular houses with just three clicks.
- Always start drawing the longest side of a building, the alignment will be much better.
- Blocks of several joined houses of equal size should be traced as one outline. The Terracer plugin will do the rest.
- More complex buildings have to be drawn by hand. Remember to orthogonalise the building shape.
- When possible, orthogonalise the building shape using
Tools>Orthogonalise Shapes(Default shortcut is Q)
Step 3: Collecting the data
Alternative 1: Surveying
The goal of surveying an area is to collect the street names and house numbers. While you can use a Smartphone to directly write the data into OpenStreetMap, you can also use Field Papers to print out a paper map, write down the street names and addresses and upload the resulting map by taking a picture.This picture can then be imported into JOSM and published online for others to use.
Post codes are harder to survey, as they aren't written on any sign. Furthermore, post codes in Luxembourg are usually attributed by street, i.e. for a given street, most (if not all) houses will have the same post code.
Alternative 2: Using CACLR
Alternatively, you can use the CACLR dataset as a reference in order to collect the data required to map the addresses into OpenStreetMap.
Step 4: Adding the house numbers to your buildings
When you are done, the terracer-plugin comes into action.
For single houses, just select the house and call the plugin with <shift>+<t>.
Insert the housenumber as lowest housenumber and as highest housenumber. For terraces, insert the lowest and the highest housenumbers.
The plugin will detect the number of the houses. It will then segment the building outline into single outlines for each house.
If the housenumbers are the wrong way, a <shift>+<r> will reverse the numbers in the selected terrace.
The option "Umringslinie löschen" (delete building outline ?) should be checked, to delete the original outline, you drew in the first step.
Leave the option "create a street relation" (in German: "Eine Strassenzugehörigkeitsrelation erzeugen") unchecked.
Select a street name before pressing ok, the addr:street tag will be placed for each single house.
You are almost done by now! Repeat for the next house, the next street, the next village, the next commune, the next canton, the next district, and then the entire country.
Why don't we use interpolation?
As there is a dataset containing all house numbers for Luxembourg, we don’t use interpolation for mapping addresses.
After the work, please update the status (key "Labeled" (I) and/or "house numbers" (h) ) in the subproject [].
I have used the following codes for the images below:
|green||postcode and is_in:city|
|orange||postcode and NO is_in:city|
|pink||is_in:city and NO postcode|
|blue||ref and name|
|gray||ref and NO name|
|green||addr:city, addr:street, addr:postcode, addr:housenumber|
|orange||ONE of the abouve is missing|
|red||more tags are missing|