Skip to content

GNSS bundle - Elevations, transformations, providers#727

Open
alex-cit wants to merge 5 commits intomainfrom
iss_701-describing-providers
Open

GNSS bundle - Elevations, transformations, providers#727
alex-cit wants to merge 5 commits intomainfrom
iss_701-describing-providers

Conversation

@alex-cit
Copy link
Contributor

@alex-cit alex-cit commented Feb 19, 2026

#701

  • new page for elevations describing the providers and options
  • added note to height variables that they may not be available for all providers
  • List of known supported GPS devices updated: all "yes" for iOS devices set to "yes (mock)", fixed references in the table

@alex-cit alex-cit force-pushed the iss_701-describing-providers branch from e69ff61 to 562d0aa Compare February 26, 2026 13:31

[[toc]]

When collecting data in the field, <MobileAppName /> provides information your position and also elevation. By default, GPS receivers provide an *ellipsoidal height* that is related to the reference ellipsoid. However, for most applications, a *physical height* (also known as height above the sea level) is more appropriate.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When collecting data in the field, <MobileAppName /> provides information your position and also elevation. By default, GPS receivers provide an *ellipsoidal height* that is related to the reference ellipsoid. However, for most applications, a *physical height* (also known as height above the sea level) is more appropriate.
When collecting data in the field, <MobileAppName /> provides information about your position and also elevation. By default, GPS receivers provide an *ellipsoidal height* that is related to the reference ellipsoid. However, for most applications, a *physical height* (also known as height above the sea level) is more appropriate.


When collecting data in the field, <MobileAppName /> provides information your position and also elevation. By default, GPS receivers provide an *ellipsoidal height* that is related to the reference ellipsoid. However, for most applications, a *physical height* (also known as height above the sea level) is more appropriate.

An *orthometric* height is a physical height referred to a *geoid*, a special surface that is resembles the mean sea level. The difference between ellipsoidal and orthometric height is called the *geoid separation* (also known as geoid height or undulation) and it can be applied to transform these heights.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
An *orthometric* height is a physical height referred to a *geoid*, a special surface that is resembles the mean sea level. The difference between ellipsoidal and orthometric height is called the *geoid separation* (also known as geoid height or undulation) and it can be applied to transform these heights.
An *orthometric* height is a physical height referred to a *geoid*, a special surface that resembles the mean sea level. The difference between ellipsoidal and orthometric height is called the *geoid separation* (also known as geoid height or undulation) and it can be applied to transform between these heights.

## Internal provider (no external device)

### Android
In Android, the [internal (fused)](../../field/mobile-app-ui/#gps-settings) GPS provider is used by default. It reports ellipsoidal heights that <MainPlatformName /> transforms to **orthometric heights using the EGM96 geoid model** by default and displays them in the [GPS info panel](../../field/mobile-app-ui/#current-position-and-gps-info).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not 100% sure but using "On Android" feels more natural to me

**Custom geoid**: :white_check_mark: It is possible to use the <QGISPluginNameShort /> to [set up a different geoid model](#using-custom-geoid) and transform the elevations to a different vertical reference system.

### iOS
In iOS, the GPS provider can provide orthometric and ellipsoidal heights.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same note as with android


**Position variables**: :white_check_mark: ellipsoidal elevation, :white_check_mark: orthometric elevation, :white_check_mark: geoid separation values are available and can be stored using [position variables](../../layer/variables/#position-variables).

**Custom geoid**: :white_check_mark: It is possible to use the <QGISPluginNameShort /> to [set up a different geoid model](#using-custom-geoid) and transform the elevations to a different vertical reference system. The defined geoid model is displayed in the <MobileAppNameShort />.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
**Custom geoid**: :white_check_mark: It is possible to use the <QGISPluginNameShort /> to [set up a different geoid model](#using-custom-geoid) and transform the elevations to a different vertical reference system. The defined geoid model is displayed in the <MobileAppNameShort />.
**Custom geoid**: :white_check_mark: It is possible to use the <QGISPluginNameShort /> to [set up a different geoid model](#using-custom-geoid) and transform the elevation to a different vertical reference system. The defined geoid model is displayed in the <MobileAppNameShort />.

this should be singular no?


## Using custom geoid

The geoid model can be specified in [<MainPlatformName /> Project Properties](../../manage/plugin/#mergin-maps-project-properties) in QGIS. The grid shift file then needs to be packages with the project.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The geoid model can be specified in [<MainPlatformName /> Project Properties](../../manage/plugin/#mergin-maps-project-properties) in QGIS. The grid shift file then needs to be packages with the project.
The geoid model can be specified in [<MainPlatformName /> Project Properties](../../manage/plugin/#mergin-maps-project-properties) in QGIS. The grid shift file then needs to be packaged with the project.

I believe we agreed during designing that QGIS plugin will package the grid file behind the scenes, users will just specify which CRS they want to use.

- `@position_elevation_ellipsoid` - Ellipsoidal height
- `@position_geoid_separation` - Geoid or quasi-geoid height (undulation)
- `@position_longitude` - Longitude
- `@position_elevation` - Orthometric or normal height. *May not be available for some providers, see [Elevations](../../gis/elevations/) for more detail.*

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@position_altitude is still supported with the same value as @position_elevation

- for internal GPS, returns "<NoSpellcheck id="devicegps" />"
- for external GPS, returns the MAC address
- for [external GPS](../../field/external_gps/), returns the MAC address
- for [external GPS](../../field/external_gps/) if mock location is detected, returns "External (Mock)"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this line should be under @position_provider_name

- for external GPS, returns the name of the external device
- for [external GPS](../../field/external_gps/), returns the name of the external device
- `@position_provider_address` - GPS device address.
- for internal GPS, returns "<NoSpellcheck id="devicegps" />"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can be also android_fused & android_gps

- for external GPS, returns "external"
- for [external GPS](../../field/external_gps/), returns "external"
- `@position_provider_name` - GPS device name.
- for internal GPS, returns "Internal"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can be also Internal (fused) & Internal (gps)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants