The blue ’tiles’ form the basis for the GeoTiles.nl interface and data distribution structure. Their size, shape and name were not chosen arbitrarily and adhere to the naming convention originating from paper topographic maps. Unfortunately, public documentation on these sheets is scattered. Therefore, I compiled a summary of the available documentation, and tried to link various schemas together. Furthermore, I would like to introduce a compatible convention that combines sheets with the convenience of tiles.
Map sheets, known as ‘kaartbladen’ in Dutch, are standardised regions for map printing and distribution. Sheets are not necessarily consistent in shape and size, as they follow natural boundaries and were designed with their (field) usage in mind. Tiles serve a similar purpose in data processing but are typically consistent in shape and size. Both systems are used to reduce the size of a dataset to something that is convenient to be viewed or processed ‘at once’.
Why care about map sheets or tiles? The larger the region of interest compared to the sheet or tile, the higher the chances of working on adjacent units. Neighbouring tiles should thus be easy to identify and read. The sheet index of Dutch maps has changed repeatedly over the years, and it was never trivial to identify a neighbouring map sheet without knowledge of the sheet index. As the user shifts from a person reading a single map sheet to a computer(machine learning, big data) analysing a map, standardised identifiers to sections of the map are of importance. Furthermore, they simplify combing resources.
An alternative to standardised units is a processing/clipping service, such as the TOP10NL download service. This tool provides a download of the features overlapping the region of interest on demand. As users are able to narrow down their area of interest, there will be less overhead in the transfer of additional, unused material. However, such set-up requires processing on the server side. Moreover, these services merely provide tiles on demand. Even ’tileless’ distribution, without on-demand processing, such as in the GeoTiles data cube, is in fact a form of tiled distribution. The tiling schema, here chosen to be compatible with that of AHN, is handled seamlessly by the underlying Zarr library.
Here I present a brief introduction to the history of Dutch national topographic maps, and their subdivisions in map sheets. Where available I provide GIS-ready sheet indices for map generation or to index data. Moreover, I suggest a new, compatible standard to sheet identification for automated processes.
Dutch sheets & standards
The national (state) maps are definitely not the oldest maps in the nation. However, they were compatible nor aligned. The Kraijenhoffkaart was the first attempt to map the whole nation based on a single network of triangulations. Its successor, the Rijksdriehoeksmeting and associated Rijksdriehoekscoördinaten, commonly referred to as RD-coordinates, published in 1918, are still in use as the national coordinate system.
The oldest national map, the Kraijenhoffkaart, consists of only eight map sheets. To the best of my knowledge, this sheet index is no longer in use.
1850-1864: Topografische Militaire Kaart (TMK)
The first sheet index that resembles the current sheet index is the ‘Topografische Militaire Kaart’ (TMK). Published between 1850 and 1864 in ~62 sheets, each subdivided in four quadrants. See the sheet index (pdf) at the Kadaster (mirror), or as a more detailed illustration (jpg, 1895?) at the TU Delft Trésor (mirror).
The full atlas can be seen online at the library of the Vrije Universiteit Amsterdam.
The “chromo-topografische kaart van het Koninkrijk der Nederlanden op de schaal van 1:25.000”, more commonly known as ‘Bonnebladen’ added a large scale national map to the collection. Two sheets have the same size (10×12½ km) as the later introduced TOP25, but appear to have a different origin, and are shifted about half a tile. The current sheet index overlain on the sheet index of the Bonnebladen (alternative) does not provide a convincing match. Furthermore, there may be projection differences.
1930-2016: Topographic map
With the introduction of the topographic map in the 1930’s, the sheet index of the Topografische Militaire Kaart (TMK) was retained for larger map scales, even though the projection changed by the introduction of RD in 1918. However, several changes were made over the years (TOP25, TOP50). The most prominent change was in the 1980’s, when sheets over Zeeland (south west) were shifted half of a sheet north compared to the TMK.
Later variations, in 2009, led to the irregular map sheets shown here. The extended sheet 20 must have been convenient as not to split Lelystad (> 1950) in two, as well as limit the sheet area covered by water. Other newly acquired land, such as the Zandmotor (2011) and Maasvlakte II (2013) fit well within the existing tiles of 30W and 36O respectively. Some sources add sheet 63O west of 19 (Beverwijk), as map sheet 19W extends only just out to sea.
The largest deviations from the original numbering of the TMK are found in Zeeland and Limburg. Here the map sheets have been replaced and renumbered in the 1980’s, likely to simplify the map sheets as well to follow natural boundaries more closely.
Official sources of the exact boundaries of the map sheets were difficult to find. Some schemas are included in historic releases of the BRT. The data below is (re)distributed by the province of Overijssel, and contains all map sheets from the latest version (2009 – 2016). The boundaries appear to be consistent with the boundaries in the in sheet indexes distributed by the Kadaster till late 2015.
|Scale||Size (w×h)||Sheet index||Mirror|
|1:10 000||10×6¼ km||NGR||Shapefile (.zip), pdf|
|1:25 000||10×12½ km||NGR||Shapefile (.zip), pdf|
|1:50 000||20×25 km||NGR||Shapefile (.zip), pdf|
The map sheets used for the 1:50 000 scale maps were comparable to the original, and more fine grained structures were derived for large scale maps (1:25 000 and 1:10 000). The smaller sheets at larger scales are bound and numbered by the following sequence of subdivisions, although there are local deviations for convenience.
In 1930 Rijkswaterstaat made a similar change the sheet index of their ‘Waterstaatskaart’, moving from quarter sheets, like the TMK, to half sheets (east and west). However, it appears they did not realign the sheets over Zeeland and Limburg and remained with the original numbering. The ‘Digitaal Topografisch Bestand‘, DTB, from Rijkswaterstaat (NGR, DMC) is comparable to TOP10NL (1:10 000). Again, some tiles have been enlarged or shrunk, for practical reasons, such as describing islands in single tiles. Like the Waterstaatskaart, the DTB follows the sheet numbering from the TMK.
1997-now, AHN: streamlined version of the topographic map
Likely with the computer in mind, a more consistent sheet index is used for the distribution of the nationwide digital elevation model AHN (Actueel Hoogtebestand Nederland) and more recent Basisvoorziening 3D. The sheets over Limburg and Zeeland are still shifted compared to the TMK, but due to the distribution in smaller tiles, there is no overlap.
The sheet index as published here is derived from the sheet indices of AHN 1, 2 and 3. The sheet index at comparable levels to TOP50NL, TOP25NL and TOP10NL has been reverse engineered from the smaller sheets of AHN.
For the distribution of AHN2 smaller ‘subunits’ were initially used. These subdivided the original 5×6¼ km tiles into another 5×5 tiles of 1×1¼ km. These units are currently in use at GeoTiles.nl. A portion of AHN3 or AHN4 of this size fits conveniently in the memory of most modern workstations.
|Example||Size (w×h)||Sheet index||Notes|
|7W||20×25 km||Shapefile (.zip)||Comparable to TOP50NL.|
Divided in two: east (E) and west (W)
|7D||10×12½ km||Shapefile (.zip)||Comparable to TOP25NL (1:25 000)|
Divided in 2×4 quadrants (A-H)
|7DZ||10×6¼ km||Shapefile (.zip)||Comparable to TOP10NL, DTB|
Divided in two: north (N) and south (Z)
|7DZ1||5×6¼ km||Shapefile (.zip)||Divided in two: east (2) and west (1)|
|7DZ1_04||1×1¼ km||Shapefile (.zip)||Divided in 5×5 sheets (01-25)|
2016-now: a more regular sheet index
In 2016 the tiling structure of the topographic map changed to a systematic pattern of sheets, equal to the original index of the TMK for the TOP50raster (1:50 000) products. The only remaining drawback is irregularity of the naming of the sheets at 1:50 000 level and above.
Note that numbering of the sheets of the TOP100NL and smaller scale maps (TOP250NL, TOP500NL and TOP1000NL) is different and not linked to the sheets of TOP50NL and larger scales. Furthermore, no ‘official’ TOP10NL sheet index exists, but it may be reconstructed from the higher scale levels. For the sheet indices listed below, TOP50NL was complemented with sheets of which the existence may be inferred from its neighbouring east (O) or west (W) complement.
|Scale||Size (w×h)||Sheet index||Notes|
|1:10 000||10×6¼ km||Shapefile (.zip)*, pdf|
|1:25 000||10×12½ km||Shapefile (.zip)⁺, pdf|
|1:50 000||20×25 km||Shapefile (.zip)⁺, pdf|
|1:100 000||40 × 50 km||Shapefile (.zip), pdf|
|1:250 000||100 × 125 km||Shapefile (.zip), pdf|
|1:500 000||200 × 250 km||Shapefile (.zip), pdf||Four sheets|
|1:1 000 000||400 × 500 km||Shapefile (.zip), pdf||Single sheet|
* Derived from TOP50NL, including inferred sheets. ⁺ Includes inferred sheets.
Compatibility with the sheet index of AHN
As the sheet index is again based on the TMK, there are inconsistencies with the regular sheet index introduced for AHN. However, all tile numbers are unique. Therefore, a 1:1 conversion between the sheet identifiers is possible at the 1:10 000 scale. At this scale the offsets in Zeeland and Limburg align with individual sheets. A convenient poster of both sheet indices and their naming differences is available. For automated processing, a translation between the two schemas is possible based on an index of the 110 tiles (
.csv file in archive) with inconsistent names across versions.
At the 1:25 000 scale a unique match between the sheets is possible as well, except for the sheets in Zeeland, that are offset to the north. At the 1:50 000 scale there is also no match possible in Limburg, and tiles overlap. Note that tile 63 is known as 72 in AHN (compatible at all scales).
|Scale||Size (w×h)||Sheet index||Inconsistent/overlap|
|Subunits||1 × 1¼ km||Shapefile (.zip)||None, consistent|
|AHN||5 × 6¼ km||Shapefile (.zip)||None, consistent|
|1:10 000||10×6¼ km||Shapefile (.zip)||None, consistent|
|1:25 000||10×12½ km||Shapefile (.zip)||Zeeland|
|1:50 000||20×25 km||Shapefile (.zip)||Zeeland and Limburg|
There are infinite alternatives to the current sheet index/indices. However, pyramids are very relevant due to their popularity in web mapping applications. Coordinate grids are comparable alternatives at a fixed scale. I will briefly introduce both of them. Last, I would like to introduce a convention with the benefits coordinate grids, but with backwards compatibility to the existing sheet indices.
Image pyramids typically halve or double the resolution between zoom levels. The system is popular in web mapping solutions (e.g. Google Maps, OpenStreetMap), where each tile is split in four tiles of equal size at each subsequent zoom level, thus quadrupling the number of pixels (2×2). Relevant in the context of map sheets is the Dutch tiling standard (‘Nederlandse richtlijn tiling’). Instead of the typically used Web Mercator projection (EPSG:3857), Rijksdriehoekscoördinaten (EPSG:28992) are used. The standard defines the bounds and scale set to be used. Simple relations to determine the tile coordinates are on and vice versa.
An overview of the extent of the schema, and the tiles, is available as Geopackage up to zoom level 10. Columns are counted left to right, rows are counted top to bottom, starting at zero. This convention is inherited from computer science, where image coordinates are typically with respect to the top left corner of the image (matrix).
As tiles are square, there is no direct match to the map sheets. However, the area covered by the tiles at various zoom levels are comparable to the existing map sheets.
|Zoom level (z)||Width, height (m)||Area (km²)||Comparable|
|0||880 803.84||775 815|
|1||440 401.92||193 953||TOP1000 (200 000 km²)|
|2||220 200.96||48 488||TOP500 (50 000 km²)|
|3||110 100.48||12 122||TOP250 (12 500 km²)|
|4||55 050.24||3 031||TOP100 (2000 km²)|
|5||27 525.12||758||TOP50 (500 km²)|
|6||13 762.56||189||TOP25 (125 km²)|
|7||6 881.28||47||AHN (62½ km²)|
|10||860.16||0.73||Subunit (1¼ km²)|
An alternative, but intuitive, tiling schema is used for the areal photography as of 2021 (‘BM5’). Each tile is 1×1 km and numbered by its left and top coordinates in RD (meters). Major disadvantage is incompatibility with the previous schemas due to the different ratio of width and height. Furthermore, it is inconvenient that the coordinates are not guaranteed to be positive, resulting in ‘funny’ tile names over the North Sea that require an ambiguous minus sign. Note the incompatibility with ‘kilometerhokken‘ and ‘uurhokken‘ used in biodiversity mapping that typically use the south west corner (lower left) as identifier.
Statistics Netherlands (CBS) aggregates statistics in 100×100 m and 500×500 m squares, identified by the coordinates of their lower left corner. On a European scale, Eurostat provides various tiling grids of 1 to 100 km cell size, including a basic population statistic and country information (coordinate reference system: ETRS89 Lambert Azimuthal Equal-Area).
|Scale||Size (w×h)||Sheet index||Notes|
|z 1 – 10||Geopackage (.zip)||Tilingrichtlijn|
|1×1 km||Shapefile (.zip)||BM5|
|100 m||Shapefile (.7z)||CBS|
|500 m||Shapefile (website)||CBS|
|1 – 100 km||Shapefile (website)||Eurostat|
A compatible convention
The major disadvantage of the current tiling structure is that there is no direct link between adjacent tiles. A lookup in the tiling schema is necessary to find the name of an adjacent tile. Especially in automated processing this a relatively complex and possibly error prone process. At GeoTiles.nl, this was solved by adding an overlapping boundary to each tile. With this overlap, each tile may be used as a stand-alone unit, given that the region of interest will not exceed the overlap. This is especially useful if a small neighbourhood is required within a process, but comes at the cost of increased data replication. If it would be easier to access adjacent tiles, the overlap could be identified ‘on the fly’, preferably with only simple arithmetic.
To find adjacent tiles with ease, the sheet identifiers have to be simplified. Note that there is no need to alter the sheet index! There are two, not necessarily conflicting, options:
- Sheet identifiers based on (corner) coordinates, comparable to a coordinate grid, but with rectangular instead of square tiles. Only the size of a sheet is required to find adjacent tiles or find the sheet overlapping a coordinate. Major drawback are the large number of zeros required in the identifier, as larger scale sheets have boundaries that require decametre precision. Furthermore, there will be negative identifiers at sea.
- Sequential sheet identifiers, derived from (corner) coordinates, comparable to an image pyramid at a fixed zoom level, with rectangular instead of square tiles. No additional information is required to find an adjacent tile. The size of a sheet and an optional offset are required to find the sheet overlapping a specific coordinate. However, thanks to the offset, negative sheet identifiers could be circumvented as much as possible. Furthermore, it is possible to circumvent potentially confusing identifiers by offsetting the index, like with RD-coordinates.
As a basis for the numbering schema, the lower left coordinates of the area of interest are used. This is intuitive from a cartographic perspective, where the (apparent) origin of the coordinate system is in the lower left corner of the map. The lower left corner of the existing map sheets is at 0 m E, 300 000 m N. The practical bounds of for a national mapping of the European Netherlands are defined by:
- The eastern most point of the Dutch Exclusive Economic Zone is the tripoint between Belgium, the United Kingdom and the Netherlands. This is approximately -41172 m east (and 435704 m north) in RD coordinates (EPSG:28992).
- The southern most point of the Netherlands is in Limburg, at approximately 306846 m north in RD coordinates (EPSG:28992).
Although, at the time of writing, the switch to RDNAPTRANS™ 2018 is not yet completed, the new, extended coverage of the quasi-geoid and correction grid of this transform provide a natural bounding box for a sheet index. The extremes are further too the south west than the previously found geographic extremes of the Dutch territory. However, all likely (future) map sheet needs are covered. To align with the existing sheets, the lower left corner has to be at -100 000 m E and 200 000 m N to cover the full region of validity of RDNAPTRANS and align with the existing sheets.
With the offset defined, the following grids, aligned with the existing sheets, were derived. They include the original sheet identifiers where available.
|Scale||Size (w×h)||Sheet index||Notes|
|1:10 000||10×6¼ km||GeoPackage||TOP10|
|1:25 000||10×12½ km||GeoPackage||TOP25|
|1:50 000||20×25 km||GeoPackage||TOP50|
Simple relations link the sheet identifier (column, row) to the bounding box as well as coordinates to the sheet they are on:
From sheet (column, row) to bounding coordinates:
xmin = ox+sx*col ymin = oy+sy*row xmax = ox+sx*(col +1) ymax = oy+sy*(row +1)
From coordinates (x, y, in RD) to sheet:
col = floor((x-ox)/sx) row = floor((y-oy)/sy)
Or, for the left and bottom coordinates of a known tile:
col = (left-ox)/sx row = (bottom-oy)/sy
The following parameters (ox, oy, sx, sy) cover the different sheet sizes of sheets in the equations above.
|Scale||Offset (||Offset (||Size (||Size (|
|Subunits||-100 000||200 000||1 000||1 250|
|AHN||-100 000||200 000||5 000||6 250|
|1:10 000||-100 000||200 000||10 000||6 250|
|1:25 000||-100 000||200 000||10 000||12 500|
|1:50 000||-100 000||200 000||20 000||25 000|
With this convention it is trivial to find neighbouring tiles or sheets: add/subtract one to/from the row or column identifier. The sheet indices provide a lookup table if a traditional sheet identifier is provided or should be provided to the user (when available).
There is a 100+ year tradition in dividing the country in workable chunks. Changes to the standard require renaming at best, reprocessing at worst. Therefore, developments to the sheet index should preferably not break backwards compatibility. The current sheet index of the topographic map is largely compatible with its predecessors of the last three decades, although a conversion table is needed.
Major drawback of all sheet indices presented was that there is no direct link between the sheet identifier and bounding box of the map sheet, nor is there a link to its adjacent units. This direct relationship is a major advantage of tiling schemas. The map sheets introduced in 2016 have all properties necessary be compatible with a tiling schema, and adaptation to a standard that provides ‘best of both worlds’ is trivial.
I would like to thank Jochem Lesparre and Frank Steggink for their comments and suggestions. Furthermore, I would like to thank the Kadaster, EuroGeographics and OpenStreetMap for the background maps. The TU Delft Trésor and the book “200 jaar kaarten maken in beeld (1815 – 2015)”, by Nico Bakker et al. (2015), proved to be useful resources on the history of map making.
This unofficial overview is to the best of my knowledge, no guarantee on availability, completeness, correctness or fitness for any particular purpose is implied. Furthermore, equal sheet identifiers do not guarantee equal map properties (e.g. coordinate reference systems)! Always verify first that the data in the two sheets is compatible.