Tag: en_gb

OPENGIS.ch at the QGIS.ch User Meeting 2025 in Bern

This past Tuesday in Bern, the Swiss QGIS community came together for the 2025 edition of the QGIS.ch User Meeting — and we at OPENGIS.ch were proud to be deeply involved across the entire event, from presentations to hands-on workshops.

Sharing Insights and Innovation

The day began with our CEO, Marco Bernasocchi, opening the conference with an update on the QGIS project, covering exciting news about the upcoming QGIS 4 release and the ongoing website revamp (slides here). Shortly after, he took the stage again to present the latest improvements in QField, including new features, user experience (UX) enhancements, and under-the-hood upgrades that continue to enable efficient field data collection (slides here).

In collaboration with Timothée Produit from IG Group SA, our colleague Isabel Kiefer presented tools and streamlined processes for installing, managing, and updating TEKSI (and other) modules. These solutions are a testament to our mission of simplifying complex GIS infrastructure in public and private organisations alike.

Later in the morning, our CTO Mathias Kuhn gave a compelling talk on Machine Learning and AI in QGIS, showing real-world use cases and technical innovations that bridge geospatial workflows with intelligent automation.

Strengthening QGIS Security

As part of our commitment to sustainability and professionalisation in open source GIS, we are also proud to be a partner of Oslandia in the QGIS Security Project, which Vincent Picavet presented during the event. This initiative aims to ensure that QGIS continues to meet the highest standards of security — a crucial foundation for its growing adoption in critical infrastructures around the world.

Hands-on with QField – in Three Languages!

In the afternoon, OPENGIS.ch hosted a fully booked, multilingual QField workshop, attended by 25 enthusiastic participants. The session provided hands-on experience for users who wanted to take their QGIS projects into the field and was an excellent opportunity to exchange best practices and tips from real-world use cases and get some sun 🙂

OPENGIS.ch Tools in Action

Even outside of our sessions, tools developed by OPENGIS.ch were featured prominently throughout the day:

  • QField played a key role in the Zermatt use case presentation, demonstrating its flexibility and robustness in alpine field operations.
  • The Model Baker plugin, to which we contribute heavily, was showcased with its new multilanguage support for QGIS models — a significant step forward for the Swiss context and its multilingual projects.

A Thriving Community

As always, the QGIS.ch user meeting was a reminder of the strength and passion of the Swiss open source geospatial community. A huge thank you to the organizers, speakers, and participants who made the event such a success — we’re already looking forward to the next one!


Stay connected:
👉 QField website
👉 QFieldCloud
👉 Model Baker plugin

Learn More

Using Data Defined Overrides in QGIS

Using Data Defined Overrides are a powerful tool in QGIS, but I’ve got the impression that too little people use this feature. So in this blog post you can learn what they are and I’ll show you a simple example of how to use them. You will notice this blog post is pretty long, but that doesn’t mean Data Defined Overrides are difficult, they just have loads of options and I wanted to show you every step I took to use them.

What are Data Defined Overrides?

In QGIS you can use data from a layer or an expression to change the value of a setting in a layer for that specific map object. This means that a setting is dynamically changed based on a value in the attribute table of that object or a value that is generated using an expression. In other words, if you use a Data Defined Override, the manually entered setting is ignored, and instead something else is used.

Where do I find these Data Defined Overrides?

If you see a button like this one: next to a symbology or label setting, then that’s a setting you can change using Data Defined Overrides. You will notice this button is available all over the place in the symbology and label settings of a layer.

How to use Data Defined Overrides?

If you click on a button. A menu will open:

In this menu you will find different ways to enter a Data Defined Override. The first, and maybe simplest way is to select “Field” in this menu. This will show a list of fields that can be used. When you select one of the available fields, the content for that field will be used as a setting.

Another simple way to create a Data Defined Overrides is the Assistant.

If you click on that option, a new window will open:

In that window you get information on what kind of value QGIS expects for this setting. There is also the option to select a field or use the expression editor using the button in this settings window. In the example above you see the Assistant for the Rotation setting. And you will see it has a lot more options than just the field. The content of this Assistant window will be different depending on the setting you want to override.

Another way to use expressions to create Data Defined Overrides, is selecting “Edit” in the main Data Defined Override menu. This option will also allow you to edit the expression afterwards, if you want to change it.

In the Expression Builder you can use all possibilities the expressions give you, but you have to make sure the result of your expression is a value the setting expects. The expected format is shown under the expression input box. The preview of the expressions result is a good way to check if the result are compatible with the expected format.

The button turned yellow!

If a Data Defined Override is used the turns into . That way QGIS notifies you that the setting itself is ignored by the program, but instead the Data Defined Override is used. If you want disable the Data Defined Override, you can go to edit and remove the expression or you can select the option “Clear” after you pressed the button.

What can I enter into a Data Defined Override?

The answer to that question depends on the setting you want to override. The Expression builder or the Assistant will probably make it clear what kind of value from a field or expression is expected. For example:

  • The setting rotation will expect a “double” value between 0 and 360. So 122.5 would be a valid value.
  • An opacity setting will expect an “integer” value between 0 and 100. So 50 would be a valid value, but 50.1 wouldn’t.
  • A color expects a “text” in one of the following kinds of forms:
    • [r,g,b,a] where r is red, g is green, b is blue and a is the alpha value. Each of these is an integer value between 0 and 255. The entire setting without the square brackets must be a text. So for example ‘250,25,100,200’ including the single quotes would be a valid color setting.
    • Hex color codes in the forms #AARRGGBB or #RRGGBB as a text value like they are used in HTML and CSS are possible to define a color. So for example ‘#FF5000’ is a possible color.
    • A third way to define a color is to use the name of the color. A list of color names can be found on https://developer.mozilla.org/en-US/docs/Web/CSS/named-color. So for example ‘skyblue’ is a possible color.

Units like degrees or percentages are not part of the value. QGIS will assume these units based on the setting you want to override. Sometimes the units are a separate setting, and so for a width you first set the unit setting and for the main width setting you can use the Data Defined Override.

A simple example

To make Data Defined Overrides easier to understand I’ll show it with this simple example below. We start with a simple point layer. In this example the points are the locations of arrows we want to place along a route. We want the arrows to be rotated so they are aligned along the route. To accomplish this I have added a field called “rotation” and for each point I have entered a number into that field that has the rotation value (between 0° and 360°) of each arrow.

On the map below you can see each point labelled with it’s rotation value.

After that we will change the symbol of the points to arrows. You can style them anyway you want, but I chose to make them as a simple marker with a simple red arrows. At this moment all arrows will point up.

To change the rotation we will now use Data Defined Overrides. First we have to click on the button next to the rotation setting. There I click on the option “Field”, and select the field “orientation” I previously created in my shapefile.

After I did that, you will see that each arrow is rotated based on its value in the field “rotation” in my shapefile.

After that I also added the route as a separate blue layer and added the field “rotation” also as a label on top of the arrows. I also used Data Defined Override for the rotation setting of the label and that results in the map below.

Another example

As said before you can find Data Defined Overrides in lots of settings. In the example below I used the same “rotation” setting on the field “Size”. Ans I used “Meters at scale” as unit for Size.

To conclude

I hope this explanation helps you understand that Data Defined Overrides are a powerful tool to create symbologies. I used the a lot in my examples for Geometry Generators you can find on Codeberg, because those two QGIS functionalities make a great combination. But more about that will follow in one of the next posts on this blog.

Please tell about how and why you use Data Defined Overrides in QGIS in the comments below. I’d love to hear about other use cases.

Learn More

QField 3.6 “Gondwana”: Locking on greatness

Building on top of the last release which introduced background tracking, this development cycle focused on polishing functionalities and building on top of preexisting features. The variety of improvements is sure to make our diverse user base and community excited to upgrade to QField 3.6.

Main highlights

One of the most noticeable improvement in this version is the addition of “map preview rendering”. QField now renders partial map content immediately beyond the edge of the screen, offering a much nicer experience when panning around as well as zooming in and out. Long-time QGIS users will recognise the behaviour, and we’re delighted to bring this experience to the field

This upgrade was the foundation upon which we built the following enhancement: as of QField 3.6, using the “lock to position” mode now keeps your position at the very center of the screen while the canvas slips through smoothly. This greatly improves the usability of the function as your eyes never need to spend time locating the position within the screen: it’s dead center and it stays there!

Reminder, the “lock to position” mode is activated by clicking on the bottom-right positioning button, with the button’s background turning blue when the mode is activated.

The improvements did not stop there. Panning and zooming around used to drop users out of the lock mode immediately. While this had its upsides, it also meant that simple scale adjustments to try and view more of the map as it follows the position was not possible. With QField 3.6, the lock has been hardened. Moving the map around will temporarily disable the lock, with a visual countdown embedded within a toast message informs users of when the lock will return. An action button to terminate the lock is located within the toaster to permanently leave the mode.

Moving on to QFieldCloud, this cycle saw tons of improvements. To begin with, it is now possible to rely on shared datasets across multiple cloud projects. Known as localised data paths in QGIS, this functionality enables users to reduce storage usage by storing large datasets in QFieldCloud only once, serving multiple cloud projects, and also easing the maintenance of read-only datasets that require regular updates.

QFieldSync users will see a new checkbox when synchronising their projects, letting them upload shared datasets onto QFieldCloud.

Furthermore, QField has introduced a new cloud project details view to provide additional details on QFieldCloud-hosted projects before downloading them to devices. The new view includes a cloud project thumbnail, more space for richer description text, including interactive hyperlinks, and author details, as well as creation and data update timestamps. Finally, the view offers a QR code, which allows users to scan it quickly and access cloud projects, provided they have the necessary access permission. Distributing a public project has never been easier!

Beyond that, tons more has made its way into QField, including map layer notes viewable through a legend badge in the side dashboard, support for feature identification on online raster layers on compatible WMS and ArcGIS REST servers, atlas printing of a relationship’s child feature directly within the parent feature form, and much more. There’s something for everybody out there.

Focus on feature form polishing

This new version of QField coincides with the release of XLSForm Converter, a new QGIS plugin created by OPENGIS.ch’s very own ninjas. As its title implies, the plugin converts an XLSForm spreadsheet file (.xls, .xlsx, .ods) into a full-fledged QGIS project ready to be used in QField with a pre-configured survey layer matching the content of the provided XLSForm.

This was a golden opportunity to focus on polishing QField’s feature form. As a result, advanced functionalities such as data-driven editable flag and label attribute properties are now supported. In addition, tons of paper-cut bugs, visual inconsistencies, and UX shortcomings have been addressed. Our favourite one might just be the ability to drag the feature addition drawer’s header up and down to toggle its full-screen state 🙂

Learn More

QField 3.6 “Gondwana”: Locking on greatness

Building on top of the last release which introduced background tracking, this development cycle focused on polishing functionalities and building on top of preexisting features. The variety of improvements is sure to make our diverse user base and community excited to upgrade to QField 3.6.

Main highlights

One of the most noticeable improvement in this version is the addition of “map preview rendering”. QField now renders partial map content immediately beyond the edge of the screen, offering a much nicer experience when panning around as well as zooming in and out. Long-time QGIS users will recognise the behaviour, and we’re delighted to bring this experience to the field

This upgrade was the foundation upon which we built the following enhancement: as of QField 3.6, using the “lock to position” mode now keeps your position at the very center of the screen while the canvas slips through smoothly. This greatly improves the usability of the function as your eyes never need to spend time locating the position within the screen: it’s dead center and it stays there!

https://videopress.com/v/kJg69l49?resizeToParent=true&cover=true&preloadContent=metadata&useAverageColor=true

Reminder, the “lock to position” mode is activated by clicking on the bottom-right positioning button, with the button’s background turning blue when the mode is activated.

The improvements did not stop there. Panning and zooming around used to drop users out of the lock mode immediately. While this had its upsides, it also meant that simple scale adjustments to try and view more of the map as it follows the position was not possible. With QField 3.6, the lock has been hardened. Moving the map around will temporarily disable the lock, with a visual countdown embedded within a toast message informs users of when the lock will return. An action button to terminate the lock is located within the toaster to permanently leave the mode.

Moving on to QFieldCloud, this cycle saw tons of improvements. To begin with, it is now possible to rely on shared datasets across multiple cloud projects. Known as localised data paths in QGIS, this functionality enables users to reduce storage usage by storing large datasets in QFieldCloud only once, serving multiple cloud projects, and also easing the maintenance of read-only datasets that require regular updates.

QFieldSync users will see a new checkbox when synchronising their projects, letting them upload shared datasets onto QFieldCloud.

Furthermore, QField has introduced a new cloud project details view to provide additional details on QFieldCloud-hosted projects before downloading them to devices. The new view includes a cloud project thumbnail, more space for richer description text, including interactive hyperlinks, and author details, as well as creation and data update timestamps. Finally, the view offers a QR code, which allows users to scan it quickly and access cloud projects, provided they have the necessary access permission. Distributing a public project has never been easier!

Beyond that, tons more has made its way into QField, including map layer notes viewable through a legend badge in the side dashboard, support for feature identification on online raster layers on compatible WMS and ArcGIS REST servers, atlas printing of a relationship’s child feature directly within the parent feature form, and much more. There’s something for everybody out there.

Focus on feature form polishing

This new version of QField coincides with the release of XLSForm Converter, a new QGIS plugin created by OPENGIS.ch’s very own ninjas. As its title implies, the plugin converts an XLSForm spreadsheet file (.xls, .xlsx, .ods) into a full-fledged QGIS project ready to be used in QField with a pre-configured survey layer matching the content of the provided XLSForm.

This was a golden opportunity to focus on polishing QField’s feature form. As a result, advanced functionalities such as data-driven editable flag and label attribute properties are now supported. In addition, tons of paper-cut bugs, visual inconsistencies, and UX shortcomings have been addressed. Our favourite one might just be the ability to drag the feature addition drawer’s header up and down to toggle its full-screen state :)

Learn More

XLSForm Converter: unlock a world of surveys with our brand new QGIS plugin

Today marks the initial release of our brand-new QGIS plugin, XLSForm Converter.
As the name suggests, the plugin converts XLSForm survey files into ready-to-use QGIS projects with a preconfigured survey attribute form.

Migrating to QField was never easier!

Even more exciting is that the converted QGIS project includes all the necessary settings for use with QField, thanks to a nifty QFieldCloud integration. With just a single checkbox, you can upload your generated project to the cloud and begin gathering data—either as a standalone surveyor or collaboratively as part of a team.

We believe this provides a fantastic solution for organisations and groups familiar with XLSForm—or already working with templates—who want to leverage QGIS-powered QField to conduct spatial surveys.

Plugin highlights

The plugin adds an algorithm to QGIS’ processing toolbox that converts a XLSForm file – Microsoft Excel’s .xls or .xlsx as well as LibreOffice Calc’s .ods – into a QGIS project containing a main survey layer and a basemap.

The layer’s geometry type will reflect the first geometry-driven question type found in the XLSForm, namely a point geometry for geopoint, a line geometry for geotrace, or a polygon geometry for geoshape.

For XLSForm repeat blocks, the algorithm generates additional layers and configures parent-child relationships to bind them to the main survey layer. These layers are hidden from the layer tree by default, keeping the project simple and user-friendly—even for users unfamiliar with QGIS.

For questions that capture media content—such as photographs, videos, and audio clips—the converter sets up the project so users can easily record them in QField with a single tap.

Pro tip: Since the converter is an algorithm, you can use it to build complex, model-driven survey projects via the QGIS Processing Modeler. You can also run conversions in headless environments using qgis_process. The possibilities are endless!

QFieldCloud-facilitated deployment to QField

As mentioned earlier, the converted project can immediately be used in QField to conduct surveying. The best way to deploy these projects to your QField-running devices is via QFieldCloud. The algorithm comes with a parameter that – when checked – will automatically upload the generated project to QFieldCloud.

That functionality requires the QFieldSync plugin to be installed and enabled in QGIS. Just log in to your QFieldCloud account via QFieldSync, and let the algorithm take care of the rest. It’s magical! If you haven’t yet tried QFieldCloud, this might be a good time to do so by signing up for a free community account.

Of course, you’ll always be able to copy these projects manually onto devices via USB cable or the numerous file import options available in QField.

XLSForm-what?

XLSForm is a form standard designed to simplify the authoring of forms using spreadsheet programs like LibreOffice Calc or Microsoft Excel. They are simple to get started with and allow for the authoring of complex forms in no time. The syntax is beginner-friendly, and the building of surveys by adding rows onto a spreadsheet is surprisingly intuitive.

The standard has been widely adopted across various sectors, including public health, humanitarian relief, disaster response, local governance, and non-profit organisations.

Over here at OPENGIS.ch, we believe this plugin can be instrumental to preexisting operations and projects interested in migrating to a QField surveying environment where spatial considerations are front and center. If you are interested in discussing this further, do not hesitate to contact us.

Learn More

[Blog] New API tools give you more user management options!

Enhance user management in Mergin Maps with the Python API: automate user creation, manage roles, and integrate processes seamlessly.
Learn More

1 Million Downloads: QField's Big Milestone

🚀 QField has officially hit 1 million downloads – thanks to you! 🎉

Let’s not beat around the bush: QField has hit 1+ million downloads. What started as an ambitious open-source project has transformed into a global tool that’s changing how professionals collect spatial data in the field. This big milestone is the result of years of dedication, with over 50,000 hours invested by our team. Our GeoNinjas contributed 14% of QGIS, while also driving open-source projects like ModelBaker and SwissLocator.Thank you for making GIS nerds the unsung heroes of fieldwork everywhere. Here’s to changing the world, one field at a time!


🚀 GET QFIELD NOW


From Switzerland to the world!🇨🇭

Born in the Swiss Alps, raised by open-source, and now roaming the globe, QField has gone international! What started in Switzerland is now in the hands of field mappers, researchers, and GIS pros on six continents. Thank you for taking QField worldwide! 🌍

Mapping the world one field at a time.


The numbers tell a story 📖

One million downloads might sound like just a number, but for us, it represents something much bigger. It’s 1'000'000 times someone chose an innovative, flexible mobile mapping solution. It’s 1’000’000 instances of fieldwork made easier, more efficient, and more accurate.

From humble beginnings to over 1 million downloads, QField has officially gone from “little app that could” to “open-source overachiever. Thanks to the power of open source (and probably some caffeine).

QField has hit 1 million downloads in over 150 countries.


QField’s top user countries 🏆

QField’s passport is full! 🌍 We’re blown away by how far our geospatial tool has travelled: from mountaintops to city blocks, you’re mapping it all. Our amazing global user community is making QField a true #DigitalPublicGood.A map made in heaven! 💚

Mapping knows no borders, just like QField’s growing community.


More than just an app 📱

This cross-platform flexibility helps professionals collect GIS data anywhere, anytime. QField goes wherever you do. Android? Check. iOS? Check. Desktop? Check. If it has a screen, we’re probably on it. Collect GIS data anywhere, anytime.

QField isn’t just software, it’s a community-driven project that turns complex geospatial challenges into precise, actionable data. Every download represents a connection to our core mission: making professional-grade mobile GIS accessible, reliable, and straightforward.


QField’s Journey: Mapping our milestones 📍

Our roadmap is packed with milestones and highlights that will continue to push the boundaries of mobile GIS.


QField toQFieldCloud ☁️

You can play a key role in the sustainable growth of QField, the open-source digital good. Your support  can take many forms, like contributing… or:

Support option 1
Support option 2
Support option 3

This not only streamlines and enhances your fieldwork but also gives you access to the full QField ecosystem with all its advantages. At the same time, you directly contribute to the continuous improvement of QField, ensuring its impact grows for everyone.

💚 SUPPORT US


Learn More

Speed up your analytics with the new MovingPandas 0.22 and Trajectools 2.6

The latest releases of MovingPandas and Trajectools come with many “under the hood” changes that aim to make your movement analytics faster:

  1. Instead of immediately creating a GeoPandas GeoDataFrame and populating the geometry column with Point objects, MovingPandas now has “lazy geometry column creation” that holds off on this operation until / if the geometries are actually needed. This way, for many operations, no geometry objects have to be generated at all.
  2. MovingPandas TrajectorySplitters now support parallel processing and Trajectools uses parallel processing whenever available (e.g. for adding speed & direction metrics, detecting stops, splitting trajectories).
  3. When a minimum length is specified for trajectories, MovingPandas now avoids computing the total trajectory length and, instead, immediately stops once the threshold value has been reached (“early skip”).
  4. Trajectools now offers the option to skip computation of movement metrics (speed & direction). This way, we can skip unnecessary computations and leverage the lazy geometry column creation, wherever applicable.

Let’s have a look at some example performance measurements!

Example 1: MovingPandas ValueChangeSplitter

The ValueChangeSplitter splits trajectories when it detects a value change in the specified column. This is useful, for example, to split up public trajectories that contain a “next_stop” column.

The following graph shows ValueChangeSplitter runtimes for different minimum trajectory length settings (from 0 to 1km, 100km, and 10,000km):

We see that the new, lazy geometry column initialization outperforms the old original code in all cases (e.g. 57% runtime reduction for 1km), except for the worst-case scenario, when the original implementation discards all trajectories as too short right from the start. (For most use cases, min_length will be set to rather small values to avoid creation of undesired short trajectory fragments, similar to sliver polygons in classic geometry operations.)

Additionally, we can engage multiprocessing by setting the n_processes parameter, e.g. to the number of CPUs to achieve further speedup:

Example 2: Trajectools

By applying all above-mentioned speedup techniques, Trajectools is now considerably faster. For example, the following runtime reductions can be achieved by deactivating the “Add movement metrics (speed, direction)” option in the algorithm dialog:

  • Create trajectories: 62%
  • Spatiotemporal generalization (TDTR): 78%
  • Temporal generalization: 81%
  • Split trajectories at stops: 53%

I have also updated the default trajectory points output style. It now uses a graduated renderer to visualize the speed values (if they have been calculated) instead of the previously used data-defined override. This makes the style faster to customize and provides a user-friendly legend:

For more infos, have a look at:

Enjoy the latest performance increases!

Learn More

3D editing tools for Point Clouds

Edit point cloud (LiDAR) data directly in QGIS 3.42 and later. Discover new 3D editing tools, workflows, and demos for efficient point cloud classification.
Learn More

What’s under the hood of the official QGIS Server Docker image?

The Mysteries of the Official QGIS Server Docker Image
Learn More