tuinontwerp
All articles
The back boundary of a garden along a clipped beech hedge, with a small grey concrete boundary marker in the lawn at the foot of the hedge

Garden design

8 min read

Dutch cadastral map: find your plot via PDOK, step by step

Get your plot from the Dutch cadastral map via PDOK, with the actual responses for one address. Depending on its label, the boundary can be 10 to 80 cm off.


Getting your plot from the Dutch cadastral map takes two public requests. The PDOK Locatieserver turns your address into a point in Dutch grid coordinates. The Kadaster's map service on PDOK returns every parcel around that point, and you keep the one the point lies in. Tuinontwerp.app lays out your plot this way once you enter your address.

PDOK is the Dutch government's platform for open geodata, and the Kadaster is the Dutch cadastre. A map with lines shows what is registered, not where it comes from. Below are the requests and the literal responses for one known address: Hofstraat 110 in Apeldoorn, the head office of the Kadaster itself. Every URL works in your own browser, with no account and no key.

If you only want to see your boundary, without any URLs, open the cadastral map in the PDOK Viewer. The next section covers how accurate that line is. The requests follow, for anyone who wants to see where the line comes from.

How accurate is the boundary on the cadastral map?

Accurate enough to lay out a garden on, not to set out a fence by. The Kadaster says so itself: the cadastral map shows no exact boundaries and no exact measurements. From version 5 of the map, each boundary carries a quality label. That label gives the margin by which the drawn line can differ from the boundary on the ground.

LabelMargin either side of the boundary
B10 cm
C20 cm
D40 cm
E80 cm
Gcannot be determined

The design tool requests only the Perceel (parcel) layer, without those labels. So read the line in the app with that margin: in 95% of cases the real boundary lies within the label's distance. The label of your own boundary is on the cadastral map itself, because the Kadaster shows it there beside each boundary.

There is a second difference. The boundary in use, the line you treat as the edge of your garden, sometimes differs from the cadastral boundary, for example when a fence, a gate or an extension does not stand exactly on the legal boundary. Your fence therefore does not prove where your plot ends.

If you need to be sure, the Kadaster marks the boundary on the ground again with a boundary reconstruction (grensreconstructie). Prices start at €559, for a boundary length of up to 500 metres. For a layout, the map boundary is the starting point. For a fence on the boundary, the reconstruction is.

How do you turn an address into coordinates?

With two requests to the PDOK Locatieserver, PDOK's address search. The first finds the address, the second fetches its details. suggest returns suggestions for addresses and other places that match a search term. lookup asks for detailed information about one object.

https://api.pdok.nl/bzk/locatieserver/search/v3_1/suggest?q=Hofstraat%20110%20Apeldoorn&fq=type:adres&fq=bron:BAG&rows=1

The two fq filters restrict the answer to addresses from the BAG, the Dutch national register of addresses and buildings. Without a filter, the service also returns municipalities, towns, roads and postcodes. The response, shortened:

"numFound": 1,
"docs": [
  {
    "type": "adres",
    "weergavenaam": "Hofstraat 110, 7311KZ Apeldoorn",
    "id": "adr-cd8ae950d6870241e8f3a2208e6fd086"
  }
]

The second step starts from that id. It asks for exactly the fields the rest of the process needs:

https://api.pdok.nl/bzk/locatieserver/search/v3_1/lookup?id=adr-cd8ae950d6870241e8f3a2208e6fd086&fl=id,weergavenaam,straatnaam,huis_nlt,postcode,woonplaatsnaam,centroide_rd,nummeraanduiding_id,adresseerbaarobject_id
"weergavenaam": "Hofstraat 110, 7311KZ Apeldoorn",
"postcode": "7311KZ",
"nummeraanduiding_id": "0200200000007079",
"adresseerbaarobject_id": "0200010000090244",
"centroide_rd": "POINT(194315.783 469449.074)"

The field that counts is centroide_rd. That is a point in the Amersfoort / RD New system (EPSG:28992), the Dutch national grid, which works in metres. So the Kadaster office lies 194,315.783 metres east and 469,449.074 metres north of that grid's origin. In metres, the next step is much simpler to work out than in degrees.

While you type, the design tool's address field shows a list of matches from suggest. Pick one and the form sends exactly that address line. Press Enter without picking, and the tool takes the top match for the text you typed. So add your postcode and house number, to make that top match your own address rather than the same street name in another town.

Which parcels lie around your address?

Every parcel that touches a square of 120 by 120 metres around the address point. The design tool draws that square 60 metres out on each side of the point. Next it requests the Perceel layer of the cadastral map through PDOK's WFS, a standard web service for map features. PDOK updates the cadastral boundaries and parcel numbers in that service daily.

https://service.pdok.nl/kadaster/kadastralekaart/wfs/v5_0?request=GetFeature&service=WFS&version=2.0.0&typeNames=kadastralekaartv5:Perceel&bbox=194255.783,469389.074,194375.783,469509.074,urn:ogc:def:crs:EPSG::28992&outputFormat=application/json&count=500

The four numbers in bbox are the address point minus and plus 60 metres: first the lower-left corner, then the upper-right one. count=500 caps the response at 500 parcels. Around the Kadaster office 18 come back, as the response reports "numberMatched": 18.

Each parcel is a GeoJSON feature with an outline and a set of properties. Here is one of them, shortened:

"id": "perceel.150eba51-2df1-4cb8-b4c5-92f993204296",
"properties": {
  "kadastraleGemeenteWaarde": "Apeldoorn",
  "sectie": "U",
  "perceelnummer": 9833,
  "kadastraleGrootteWaarde": 905.0,
  "soortGrootteWaarde": "Vastgesteld"
},
"geometry": {
  "type": "Polygon",
  "coordinates": [[[194321.601, 469465.106], [194320.879, 469466.065]]]
}

Cadastral municipality, section and parcel number together make up the cadastral designation: Apeldoorn U 9833. The area is given in square metres, marked as established (vastgesteld). The outline is a list of corner points in the same RD grid as the address point, so the two line up without any conversion.

The design tool runs that search with the square the moment you enter your address. There is no URL for you to build and no coordinate to copy.

Which of those parcels is yours?

The parcel whose outline contains the address point. Of the 18 parcels around Hofstraat 110, that is Apeldoorn U 9833, with an established area of 905 square metres. A search box of half a metre around the point returns exactly that one parcel.

The design tool runs that test for each parcel: does the point lie inside the outline? One extra rule applies. A parcel can have holes, and a point in such a hole does not count as inside. If your house sits in a cut-out of a larger parcel around it, that larger parcel drops out.

What remains is the id of that parcel: the word perceel, a full stop and a UUID of 36 characters. That id goes into the address bar of your design. A design saved in your browser normally opens without a single request to the Kadaster. When someone opens the link in a browser without that saved design, the tool fetches the parcel again by exactly that id, with no search box:

https://service.pdok.nl/kadaster/kadastralekaart/wfs/v5_0?request=GetFeature&service=WFS&version=2.0.0&typeNames=kadastralekaartv5:Perceel&featureID=perceel.150eba51-2df1-4cb8-b4c5-92f993204296&outputFormat=application/json

That response contains one feature. If the id no longer exists at PDOK, the tool reports that the parcel was not found.

The outline of Apeldoorn U 9833 has 28 corner points. The JSON lists 29, because a GeoJSON ring ends on its first point. The whole shape fits in a box of about 41 by 48 metres. The head office is far from a narrow garden plot, but for a terraced house the steps are exactly the same.

Try the requests yourself

A browser is all you need. Neither service asks for an account or a key. Work in this order:

  1. Paste the suggest URL and replace Hofstraat%20110%20Apeldoorn with your own street, house number and town. %20 stands for a space.
  2. Copy the id from the response into the lookup URL, in place of the id of the Kadaster office.
  3. Take the two numbers from centroide_rd. Subtract 60 from both for the first two bbox values, and add 60 to both for the last two.
  4. Paste the WFS URL with your bbox. The response lists every parcel in the square.
  5. Shrink the box to half a metre around your point and request it again. Normally only your parcel is left, with its section, number and area.
  6. Copy the id of that parcel into the featureID URL. The design tool makes that request when someone opens your link in a browser without your saved design.

If your address point lies exactly on a boundary, step 5 can return two parcels. In that case, make the box smaller. For laying out the garden itself, see the garden design section of the blog.

From parcel to garden design

The parcel outline is where the design starts. Start at the address field at the bottom of this page. Tuinontwerp.app asks PDOK the same two questions and lays out your plot to scale. Around it go the buildings from the BAG, with their heights from 3DBAG, the open dataset of measured building heights for the Netherlands. On top you draw your terrace and borders and place your plants, each at a grown plant's width. Loading your plot and drawing on it costs nothing.

The plan also shows, for each plant, the most sun its spot can get. The plot boundary counts in that figure as a wall of 1.8 metres, even before you have drawn anything. The working behind that figure is explained in garden sun hours, calculated per spot. For what a designer or landscaper charges to build the plan, see what garden design costs.

The line you draw on stays the Kadaster's map boundary, with the margin of its label. With that margin in mind, you lay out the rest of your plot, from terrace to border.

Frequently asked questions

Can I look up my plot boundaries for free?

Yes. The cadastral map is open data on PDOK, and tuinontwerp.app loads your plot from it at no cost once you enter your address. In 95% of cases the drawn boundary lies within 10 to 80 centimetres of the real one, depending on its label. With label G the margin is unknown. Keep that margin in mind as you lay out your garden on your own plot in the app.

How accurate is the plot boundary on the Dutch cadastral map?

Not exactly: the Kadaster states that the cadastral map contains no exact boundaries or measurements. Each boundary carries a quality label. In 95% of cases the real boundary lies within 10 centimetres for label B, 20 for C, 40 for D and 80 for E. Label G means the quality cannot be determined.

Which PDOK services does tuinontwerp.app use for my plot?

The PDOK Locatieserver turns your address into a point, and PDOK's cadastral WFS returns the parcel that point lies in. On that parcel the app lays out your plan to scale, with the buildings from the BAG and their heights from 3DBAG around it. On it you draw your terrace, borders and plants.

Is my fence on the legal boundary?

Not always. The boundary in use, the line you treat as the edge of your garden, sometimes differs from the cadastral boundary, for example because of a fence, a gate or an extension. With a boundary reconstruction the Kadaster marks the boundary on the ground again, from €559 for a boundary length of up to 500 metres.

Sources (7)

  1. PDOK — Locatieserver, API-documentatie
  2. PDOK — Kadastrale kaart (Kadaster via PDOK)
  3. Kadaster — Kadastrale kaart en kwaliteitslabels
  4. Kadaster — Kadastrale grens en gebruiksgrens
  5. Kadaster — Grensreconstructie
  6. Kadaster — Bezoekadressen
  7. EPSG:28992, Amersfoort / RD New

More about garden design