
GIS and digital map solutions
A GIS application makes sense when the location of objects, reports or parcels determines what your staff or residents need to do. TechinFlow builds map and GIS applications on open OGC and Geonovum standards, using Dutch open geodata such as PDOK and open source software that you can keep using without licence fees.

When to commission a GIS application
A GIS application is software in which the position of something plays a role in the work itself, not just as an illustration. Think of recording trees or lampposts with their position, checking which parcel an application relates to, or showing reports per neighbourhood so a crew can plan its route.
Not every map question calls for custom software. A GIS specialist who produces analyses is often well served by desktop software such as QGIS. Commissioning a GIS application only makes sense when:
- people without GIS knowledge must work with the map, in the browser or in the field;
- data from a line-of-business application must appear on a map, and changes must flow back;
- the same operation is performed often and in the same way;
- the map is part of a larger process, such as an application, inspection or report.
If it is specifically about a public viewer in which a municipality shows map layers to residents, the page on a GIS viewer for municipalities is the better place to start. This page is about applications in which the map is a working tool.
Open standards for geodata
A GIS application rarely stands alone. It fetches map layers from PDOK, reads data from your own database and sometimes supplies data to other systems. Open standards keep those parts interchangeable.
Forum Standaardisatie, the Dutch standardisation forum, has placed the geo-standards on its "comply or explain" list. They must be applied when exchanging geographic information in which the spatial dimension is of significant importance, and they apply to Dutch government bodies. The package includes NEN 3610 as the basic model, metadata profiles based on ISO 19115 and ISO 19119, and standards for serving data.
For serving features, OGC API Features is the newer standard alongside WFS. According to the OGC it consists of separate parts. Part 1, the core, delivers features in WGS 84 with the axis order longitude, latitude. Part 2 adds other coordinate reference systems, such as the Dutch RD. Part 1 has also been published as ISO 19168-1:2020. Map images still often arrive through WMS and WMTS, which almost every GIS client can read.
Our starting point is to build against these open interfaces. That lets you replace a component later, for example the map server, without having the rest rebuilt.
Dutch open geodata through PDOK
A large part of the base data you do not have to produce yourself. PDOK is the platform where the Dutch government makes open geodatasets available through geo web services and OGC APIs, and also as downloads. There you find, among others, the BAG (addresses and buildings), the BGT (large-scale topography), background maps and, by now, the cadastral map through OGC APIs.
For a GIS application this means:
- the background map and reference layers come straight from PDOK, so they stay current without you maintaining them;
- address search uses the PDOK search service instead of your own address file;
- your own data, such as objects and reports, sits in your database and is shown on top.
Do pay attention to the licence and attribution per dataset; they are stated in the metadata. And build the application so that it keeps working gracefully when an external service is briefly unavailable, with a clear message instead of an empty map.
How to call the PDOK search services in practice, with tested examples, is covered in the guide to address search with PDOK. As early as 2017, Tekin Uslu put an example of address search with the PDOK Locatieserver on GitHub, the repository ZoekOpAdresLocatieServerPDOK.
Coordinate systems: RD New and WGS 84
Almost every Dutch GIS application has to deal with two coordinate reference systems. Dutch government data is mostly in the Rijksdriehoekstelsel (the Dutch national grid), known in the EPSG registry as EPSG:28992 "Amersfoort / RD New". It works in metres, with coordinates as x and y. GPS devices, phones and the core of OGC API Features work with WGS 84 in degrees.
Errors in conversion are a known source of odd results: objects that lie in the sea, or a few metres from their real position. Three points of attention:
- Axis order. With WGS 84, standards differ on whether longitude or latitude comes first. Check this for every integration.
- Accuracy. The EPSG registry gives an accuracy of 1 metre for the standard transformation from RD to WGS 84. For an overview map that is ample; for surveying it is not.
- Web maps. Map libraries often display their own projection. Let the application calculate internally in one system and convert only for display.
If you want to check a few coordinates quickly, use the RD to WGS84 converter.
The open source stack, from database to browser
For most GIS applications a stack of four layers is enough. Each component is open source and can be replaced by another product that speaks the same standard.
| Layer | Example | Role | When not |
|---|---|---|---|
| Storage | PostgreSQL with PostGIS | Store, index and query spatial data | If all data comes from external services and you maintain nothing yourself |
| Map server | GeoServer | Publish your own data through open standards such as WMS and WFS | For a few static layers; files or vector tiles are then enough |
| Conversion | GDAL | Convert formats and coordinate systems on import and export | Rarely superfluous; almost every stack uses it under the hood |
| Map in the browser | OpenLayers or MapLibre GL JS | Show and edit the map in the web application | For analysis by specialists; QGIS is stronger there |
The choice between OpenLayers and MapLibre depends on the data. OpenLayers is a free JavaScript library under the BSD licence that shows tiles, vector data and markers from almost any source and is strong in projections and OGC services. MapLibre GL JS is an open source TypeScript library that renders vector tiles through the graphics card, which works smoothly with large numbers of objects and freely styled maps. If the map is part of a broader web application, the rest falls under web and app development.
How does a GIS project run?
A GIS project follows the same short iterations as other custom software, with a few geo-specific steps. This is the approach we propose; the actual plan is agreed per assignment.
- Data inventory. List every dataset the application needs, with its owner, format, coordinate system, update frequency and licence. This is also where it becomes clear which layers PDOK already supplies.
- Data model. Model your own objects in PostGIS, aligned with NEN 3610 where the data must be exchanged with other government systems.
- Prototype on real data. A browser map with the real layers and one working task, such as recording an object or looking up a parcel.
- Iterations. Each iteration ends with a demo to the people who will use the map, including a keyboard and list-view check.
- Handover. Source code, map server configuration and styles, a database export and a description of every external service the application calls.
Maps that everyone can use
A map is by nature visual. Anyone who cannot see well or does not use a mouse gets little from it without an alternative. The legal duty is narrower than often assumed: the EU Web Accessibility Directive, implemented in the Netherlands by the Tijdelijk besluit digitale toegankelijkheid overheid (Article 2(2)(d)), exempts the map itself:
online maps and mapping services, as long as essential information is provided in an accessible digital manner for maps intended for navigational use;
Source: Directive (EU) 2016/2102, Article 1(4)(d), EUR-Lex. The page around the map, its search field, legend and forms remain in scope, and a public body can always make WCAG compliance of the whole application a contract requirement.
In a GIS application we cover this with a few fixed patterns:
- all information on the map is also available as a list or table, with search and filter options;
- the map can be panned and zoomed with the keyboard, and objects can be reached with the tab key;
- colours in the legend also differ in shape or pattern, so colour-blind users can tell them apart;
- an address or parcel can also be chosen through an ordinary search field, without clicking on the map.
These patterns also make the application better for other users, for example a staff member who wants to find an object by name rather than hunting across the map.
What you arrange, and what is already public
For a GIS application you need a few geo-specific things in addition to the functional wish. Provide an overview of your own datasets with their administrator and how current they are, and agree who corrects errors in that data. Decide which data may be public and which may not; locations that can be traced to a person, such as reports with a house number, deserve the same care as other personal data. Discuss that early with your data protection officer.
If you want to see how Tekin Uslu sets up map viewers, you can read the code yourself. The repositories Atlas-Basic and Atlas-Starter, both from 2020, are public on Tekin's own GitHub account. Atlas-Starter describes itself as a map viewer based on OpenLayers. The repositories have no licence file, so reusing the code requires permission. For a broader comparison of open source and proprietary GIS packages, see technology and software consultancy; if you also want to publish your data as open data, read on at the open data platform.
Frequently asked questions
Should we choose OpenLayers or MapLibre?
OpenLayers is strong in coordinate systems and OGC services such as WMS and WFS, which is handy with Dutch government data in RD. MapLibre GL JS renders vector tiles through the graphics card and suits many objects and freely styled maps. Both are open source. We make the choice on the basis of your data sources, not on preference.
Can we keep using our existing ArcGIS data?
If your ArcGIS environment publishes the data through an open standard such as WMS, WFS or OGC API Features, an open source application can read it directly. Otherwise the data can be converted with GDAL to, for example, PostGIS or GeoPackage. Switching does not have to happen in one go; both environments can exist side by side for a while.
How does this differ from a GIS viewer for municipalities?
A GIS viewer shows map layers, usually to residents or staff who look up information. A GIS application is a working tool in which users also enter or change data or complete a process. For a public viewer there is a separate service, the GIS viewer for municipalities.
May we use PDOK data in our application?
PDOK makes open government datasets available, but the licence and the required attribution differ per dataset. They are stated in the metadata of each dataset. We propose including the required attribution in the map and documenting per layer which licence applies, so that you can show it in a review.
Does a GIS application also work in the field on a tablet?
A web application works on a tablet as long as there is a connection. For work in areas with poor coverage, a progressive web app can preload map tiles and forms and send changes later. Whether that is enough or a native app is needed depends on how long staff work without a connection.
Sources
- Forum Standaardisatie — Geo-standaarden (accessed )
- OGC — OGC API Features (accessed )
- PDOK — Platform voor hoogwaardige geodata (accessed )
- PDOK — API-overzicht (accessed )
- EPSG.io — EPSG:28992 Amersfoort / RD New (accessed )
- EUR-Lex — Directive (EU) 2016/2102, Article 1(4)(d) (accessed )
- Overheid.nl — Tijdelijk besluit digitale toegankelijkheid overheid, art. 2 (accessed )
- PostGIS (accessed )
- GeoServer (accessed )
- GDAL (accessed )
- OpenLayers (accessed )
- MapLibre (accessed )
- GitHub — tekinuslu/Atlas-Starter (accessed )
More about TechinFlow
A new company in Haarlem building custom software, GIS and data platforms on open standards.
A question or project?
Tell us briefly what is going on and for which organisation. We reply by email.
Send a message