H3 HEXAGONS

Driven by my passion for geospatial software, I built this project to explore H3 hexagons and vector tiles.

IS IT RAINING IN MY HEXAGON?

This map displays the current rainfall data in the Netherlands. The data is sourced from the KNMI dataset, which provides rainfall data for the entire country, refreshed every 5 minutes. Every 10 minutes, an HDF5 data file is processed to update the rainfall values in the hexagons.

HOW HIGH IS MY HEXAGON?

This map displays the height of the terrain in the Netherlands using H3 hexagons with different resolutions for different zoom levels. The data is sourced from the AHN dataset, which provides high-resolution elevation data for the entire country. For this map, an ETL (extract, transform, and load) process was built to process GeoTIFF datasets, converting them into H3 hexagons stored in the database.

REQUIREMENTS

  • Fast
  • Use vector tiles
  • Use H3 hexagons with different resolution on different zoom level

ARCHITECTURE

The system architecture, shown in the diagram below, includes: Angular frontend for the user interface, Node.js map API for serving vector tiles, PostgreSQL/PostGIS for storing spatial data, KNMI rainfall ETL for processing rainfall data, and Caddy as the reverse proxy.

System Architecture Diagram

TOOLS

  • Angular
  • Node.js
  • OpenLayers
  • PostGIS
  • Caddy
  • H3

ARTICLES

Read more about the development process and insights in my articles: