Our skills

The open source technologies we work with in our projects, from databases to vector tile web maps.

We build our projects on open source technologies. This is not ideology but a practical decision: no licence costs, no vendor lock-in, an active community behind every tool, and a solution that stays maintainable in the long run. We learn something new in every project and grow together with the needs of our clients and the widening possibilities.

Databases and spatial data management

PostgreSQL and PostGIS: The most advanced open source database manager and its spatial extension. PostGIS adds geometry, geography and raster types, spatial indexes (GiST, SP-GiST, BRIN), topology and hundreds of spatial functions to SQL. pgRouting adds route planning and network analysis. With stored procedures, views and materialised views, data operations and business logic stay on one platform. Table partitioning and parallel queries keep databases with well over a hundred million records manageable. We operate systems from a few thousand to several hundred million records, from DBA tasks through data loading to SQL development.

GeoPackage and SpatiaLite: Portable single file spatial databases, well suited for fieldwork, data exchange and archiving, and supported by every open source GIS tool.

Desktop analysis

QGIS: The most widely extensible open source mapping platform. The tools of GDAL, GRASS, SAGA and the ORFEO Toolbox are available in one place through the Processing framework, and tasks can be automated with the model designer and PyQGIS scripts. It offers excellent cartographic rendering and connects directly to PostGIS databases, OGC services and cloud optimised raster stores. We use it as an editing workstation, an analysis tool and a place to prepare map server configurations.

Map servers and tile services

MapServer: A flexible, extremely fast map server that can be configured down to the last detail. Its cartographic solutions lead the field. It provides WMS, WFS and WMTS services and supports the OGC APIs.

GeoServer: More than a map server. A data service platform configured in a web graphical interface, with permission management and its own REST configuration API. It supports WMS, WFS, WCS and WMTS, and serves vector tiles and OGC APIs.

Vector tiles (MVT): The foundation of modern web mapping. The server splits vector data into tiles, in advance or on the fly, and the browser draws them on the client side. The benefits are fast loading, smooth zoom at any level, rotatable and tiltable views, and styles that can be changed without regenerating the data. We produce tiles straight from PostGIS (ST_AsMVT, pg_tileserv, Martin), or as pre generated tile packages from large datasets (tippecanoe, PMTiles). A packaged PMTiles file can even be served from plain static hosting, with no map server at all.

Standards and cloud optimised formats: OGC WMS, WFS, WMTS and OGC API Features services, and Cloud Optimized GeoTIFF (COG) for efficient delivery of large rasters such as orthophotos and elevation models.

Web map clients

MapLibre GL JS: The open source renderer for vector tiles. It is WebGL based, so it draws large amounts of data smoothly, and supports 3D terrain, dynamic styling through the style specification, and animation. It also has native mobile versions (MapLibre Native).

OpenLayers: When you need to work with several map servers and standard web services at once, OpenLayers is the right choice. It supports editing and snapping of vector data, arbitrary projections (including EOV), vector tiles and COG layers. An ideal thin client that can even replace editing workstations.

Leaflet and deck.gl: Leaflet for simple, lightweight map embeds, and deck.gl for GPU accelerated display of large datasets (millions of points, trajectories, heatmaps), also on top of MapLibre.

The application built around the client provides the functions that fit the individual needs and role of the user.

Mobile data collection

The goal of field data collection is for data to reach the database at the place and moment it is created, already validated, with no paper and no re-entry. The task decides which of the four approaches fits a project, and we often combine them.

QField: The mobile companion of QGIS. A project built in QGIS, with its layers, styles and forms, goes to the field unchanged. It works offline, handles photos and attachments, can use an external GNSS receiver (for example RTK), and synchronises through QFieldCloud. It runs on Android, iOS and Windows. Ideal for standard collection tasks that need a quick start and little development.

Mergin Maps: A solution built on a QGIS plugin and a mobile app, where fieldwork returns to the office through versioned synchronisation, and conflict handling lets several collectors work on the same data. The server can also run on the client’s own infrastructure, so the data stays in the client’s hands.

Native app: When the capabilities of the device must be used in depth, we develop a custom application for Android and iOS with MapLibre Native map display. This covers background location, Bluetooth survey instruments, sensors, large volumes of offline map data and enterprise device management (MDM). It takes the most development work and gives the most freedom.

PWA (progressive web app): One code base built on web technology, installable from the browser, with no app store and the same behaviour on every device. It can be used offline (service worker, IndexedDB) and reaches location and camera. Excellent for simpler form based collection and viewing; its limits are background location and Bluetooth on iOS.

Software development

We do not stick to one technology, we adapt to the task. The target environment and the requirements decide the tool, not habit. We are able to choose and use the right technology on the server, on the desktop and on mobile, and to join the layers into one consistent, maintainable system.

  • Server side: Python, PHP, Node.js and .NET (open source and cross platform today), database level business logic in SQL, REST and OGC API endpoints, background jobs and data processing services.
  • Desktop: QGIS plugins (PyQGIS), standalone desktop applications, command line tools and automated processing chains.
  • Web: TypeScript and JavaScript, modern frameworks, MapLibre and OpenLayers based map interfaces that run in the browser and need no licence.
  • Mobile: Field data collection and viewing applications, native or cross platform (built on web technology), with offline operation and location handling.

Data processing and transformation

The value of a geospatial system depends first of all on the quality and usability of its data. That is why a large part of the work in a project is acquiring, cleaning, transforming and loading data, which has to be built as a well designed, repeatable and automated process. Spatial data makes this special in several ways.

Coordinate reference systems: Spatial data can only be interpreted together with its reference system. A typical Hungarian project meets EOV (EPSG:23700), ETRS89 and ETRF2000, WGS84 (EPSG:4326, GPS and web services) and Web Mercator (EPSG:3857, tiled maps). A wrong or missing definition, axis order, differing datums and an improper transformation cause shifts of metres, even tens of metres, and the error silently travels through the whole system. That is why we work with the PROJ library and grid based corrections (for example for the HD72 to ETRS89 conversion), handle projections explicitly at every step, and validate the result against control points.

Large volumes (big data): National databases, the land registry, LiDAR surveys, orthophoto series and satellite imagery range from gigabytes to terabytes. This volume has to be processed in chunks, streamed and run in parallel, and stored in a format that fits its purpose: PostGIS partitioned tables, GeoParquet and FlatGeobuf files, Cloud Optimized GeoTIFF (COG), vector tiles. With spatial indexing, pre filtering and spatially aware query design, operations that take hours can come down to minutes.

Real time data and time series: Vehicle tracking, sensor networks, utility telemetry and IoT devices produce a continuous stream that has to be received on arrival, checked, placed in space and stored in a way that suits time based queries. For time series storage we use the TimescaleDB extension of PostgreSQL together with PostGIS, so temporal and spatial queries can be combined in one database. MQTT and message queue based solutions receive the stream, while aggregation, long term roll ups and retention rules can be automated.

Our tools:

  • GDAL/OGR: The Swiss army knife of spatial data handling. Hundreds of supported vector and raster formats, reprojection, ready made utilities (ogr2ogr, gdalwarp, gdal_translate) for shell scripts, and Python and C++ APIs for higher level integration.
  • PROJ: The standard library for coordinate transformations, with grid based corrections and the EPSG database.
  • Python: GeoPandas, Shapely, Rasterio, pyproj and PyQGIS for flexible, scriptable processing.
  • PostGIS and SQL: Loading (COPY, ogr2ogr, FDW), validating and transforming data inside the database, transactionally.
  • DuckDB and Apache Arrow: Fast analysis and conversion of large files without a database server.
  • Scheduling and automation: Repeatable, logged, failure aware processing chains that handle data updates without manual intervention.

Let us talk about your project

If one of our solutions interests you, or you have a special requirement, write to us or call our colleagues.

Contact