From 76192eda95ce339d4258c5dfd6b5912c64b4359e Mon Sep 17 00:00:00 2001 From: Alexandra Date: Thu, 19 Feb 2026 20:35:24 +0100 Subject: [PATCH 1/5] elevations page --- src/.vitepress/sidebar/en.js | 1 + src/gis/elevations/index.md | 69 ++++++++++++++++++++++++++++++++++++ src/index.md | 1 + 3 files changed, 71 insertions(+) create mode 100644 src/gis/elevations/index.md diff --git a/src/.vitepress/sidebar/en.js b/src/.vitepress/sidebar/en.js index 8abb5fb3..884ae9f1 100644 --- a/src/.vitepress/sidebar/en.js +++ b/src/.vitepress/sidebar/en.js @@ -55,6 +55,7 @@ export default { { text: 'How to Set Up Snapping for Mergin Maps Mobile App', link: '/gis/snapping/' }, { text: 'How to Avoid Polygons Overlap', link: '/gis/avoid-overlap/' }, { text: 'Custom Projections', link: '/gis/proj/' }, + { text: 'Elevations', link: '/gis/elevations/' }, { text: 'Supported Formats', link: '/gis/supported_formats/' } ] }, { diff --git a/src/gis/elevations/index.md b/src/gis/elevations/index.md new file mode 100644 index 00000000..26f843b5 --- /dev/null +++ b/src/gis/elevations/index.md @@ -0,0 +1,69 @@ +--- +description: See how Mergin Maps handles elevations, vertical transformations and data reported by GPS providers. +--- + +# Elevations + +[[toc]] + +Whether you use internal or [external](../../field/external_gps/) GPS during your field survey, provides information about elevation. GPS receivers provide an *ellipsoid height* by default. However, for most applications, a *physical height* (also known as height above the sea level) is more appropriate. The difference between ellipsoid and physical height is called the *geoid separation* (also geoid height or undulation) and it can be applied to transform these heights. + +::: tip Terminology +The terms *geoid*, *geoid separation* and *orthometric heights* are used in the and this documentation for simplicity. + +The same functionalities apply also if the used vertical reference system is defined by a *quasi-geoid*, another type of reference surface. Physical heights related to a quasi-geoid are called normal heights. +::: + +Information about the altitude and geoid separation (if available) are displayed in the [GPS info panel](../../field/mobile-app-ui/#current-position-and-gps-info). + +When transforming elevations, uses the EGM96 geoid model by default. However, it is also possible to use another geoid model as described in the [Using custom geoid](#using-custom-geoid) section. This may be especially useful when using [external GPS](../../field/external_gps/) for higher positional precision or when a specific vertical reference system is required. + +There are some differences in the functionality and available details depending on the GPS provider, the OS of the mobile device and the connection setup. + +## 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 ellipsoid heights that are transformed by default to orthometric heights using the geoid model by adding the geoid height (undulation). These values are displayed in the [GPS info panel](../../field/mobile-app-ui/#current-position-and-gps-info) in the . + +Geoid height, ellipsoid height, and orthometric height values are available and can be stored using [position variables](../../layer/variables/#position-variables). + +If needed, it is possible to use the to [set up a different geoid model](#using-custom-geoid) and transform the elevations to a different vertical reference system. + +### iOS +iOS reports *above the sea level* heights by default. Therefore takes and displays this information by default and does not transform the heights in any way. + +??? iOS does not provide the ellipsoid height nor the geoid height, so these values are **not** available and cannot be displayed or used. This is why it also not possible to use custom geoid to transform the elevations to a different vertical reference system. + + +## External provider - Bluetooth + +External GPS can be connected [using Bluetooth](../../field/external_gps/#how-to-connect-external-gps-receiver-in-android-via-mergin-maps-mobile-app-recommended). If possible, we recommend to use this option. + +If there is no [user-defined transformation](#using-custom-geoid), the uses data reported by the GPS provider as-is, including the ellipsoid height and geoid separation. These values are available and can be used as [position variables](../../layer/variables/#position-variables). However, does not receive information about the geoid model used; this information should be supplied by the GPS provider. + +It is possible to use the to [set up a different geoid model](#using-custom-geoid) and transform the elevations to a different vertical reference system. In this case, the ellipsoid height and geoid separation are available. The defined geoid model is displayed in the . + + +## External provider - Network +External GPS can be connected using network connection. The functionality works the same as described above in [External provider - Bluetooth ](#external-provider-bluetooth). + +## External provider - Mock + +::: warning +Mock location should be only used if you are unable to connect the external GPS directly in the . +::: + +### Android +If there is no [user-defined transformation](#using-custom-geoid), the uses data reported by the GPS provider as-is. The ellipsoid height and geoid separation values are **not** available. + +It is possible to use the to [set up a different geoid model](#using-custom-geoid) and transform the elevations to a different vertical reference system. However, it is necessary to set up **the mock app to report ellipsoid heights**, otherwise the geoid separation would be applied twice leading to incorrect elevation values. + +### iOS +When using the mock location, iOS only sends a minimal subset of available GPS data, namely the coordinates (X, Y, elevation). It is not possible to obtain or display any other position variables, accuracy included. + +## Using custom geoid + +The geoid model can be specified in [ Project Properties](../../manage/plugin/#mergin-maps-project-properties) in QGIS. The grid shift file then needs to be packages with the project. + +In the , the info about the custom geoid model is displayed in [GPS info panel](../../field/mobile-app-ui/#current-position-and-gps-info). + diff --git a/src/index.md b/src/index.md index 0e487103..983a491c 100644 --- a/src/index.md +++ b/src/index.md @@ -66,6 +66,7 @@ The ecosystem consist of various components: - [How to Set Up Snapping for ](./gis/snapping/) - [How to Avoid Polygons Overlap](./gis/snapping/) - [Custom Projections](./gis/proj/) +- [Elevations](./gis/elevations/) - [Supported Formats](./gis/supported_formats/) ## Configure Forms From f664c216e1b2903807c939439a4605cc57414a6f Mon Sep 17 00:00:00 2001 From: Alexandra Date: Thu, 26 Feb 2026 14:05:46 +0100 Subject: [PATCH 2/5] spellcheck --- src/gis/elevations/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gis/elevations/index.md b/src/gis/elevations/index.md index 26f843b5..30fe0e7d 100644 --- a/src/gis/elevations/index.md +++ b/src/gis/elevations/index.md @@ -16,7 +16,7 @@ The same functionalities apply also if the used vertical reference system is def Information about the altitude and geoid separation (if available) are displayed in the [GPS info panel](../../field/mobile-app-ui/#current-position-and-gps-info). -When transforming elevations, uses the EGM96 geoid model by default. However, it is also possible to use another geoid model as described in the [Using custom geoid](#using-custom-geoid) section. This may be especially useful when using [external GPS](../../field/external_gps/) for higher positional precision or when a specific vertical reference system is required. +When transforming elevations, uses the geoid model by default. However, it is also possible to use another geoid model as described in the [Using custom geoid](#using-custom-geoid) section. This may be especially useful when using [external GPS](../../field/external_gps/) for higher positional precision or when a specific vertical reference system is required. There are some differences in the functionality and available details depending on the GPS provider, the OS of the mobile device and the connection setup. From 562d0aacf8c2c465d4e3d66a73777f98fd74ea26 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Thu, 26 Feb 2026 14:25:18 +0100 Subject: [PATCH 3/5] variables, supported gps --- src/field/external_gps/index.md | 40 ++++++++++++++++----------------- src/layer/variables/index.md | 8 +++---- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/field/external_gps/index.md b/src/field/external_gps/index.md index 04ea10be..6d2a0d6b 100644 --- a/src/field/external_gps/index.md +++ b/src/field/external_gps/index.md @@ -111,24 +111,24 @@ External GPS functionality depends on the manufacturer and on the specific model | | RTK Calibrated Surveyor Kit9 | yes | no | | | RTK Handheld Surveyor Kit9 | yes | no | | | RTK Portable Bluetooth Kit9 | yes | no | -| Bad Elf | GPS Pro | yes | yes | -| Bad Elf | GPS Pro+ | yes | yes | -| Bad Elf | GNSS Surveyor | yes | yes | -| Bad Elf | Flex Mini (standard or extreme) | yes | yes | -| Bad Elf | Flex (standard or extreme) | yes | yes | +| Bad Elf | GPS Pro | yes | yes (mock location) | +| Bad Elf | GPS Pro+ | yes | yes (mock location) | +| Bad Elf | GNSS Surveyor | yes | yes (mock location) | +| Bad Elf | Flex Mini (standard or extreme) | yes | yes (mock location) | +| Bad Elf | Flex (standard or extreme) | yes | yes (mock location) | | Carlson | Carlson 1 | yes (mock location) | unknown | | Carlson | Carlson 1| yes (mock location) | unknown | -| Emlid | Emlid Reach RX2 | yes | yes | +| Emlid | Emlid Reach RX2 | yes | yes (mock location) | | Emlid | Emlid Reach RS+2 | yes | no | | Emlid | Emlid Reach RS2/RS2+2 | yes | no | | Emlid | Emlid Reach RS32 | yes | no | -| Garmin | GLO 2 | yes | yes | +| Garmin | GLO 2 | yes | yes (mock location) | | Geomax | 8 | yes (mock location) | unknown | | Geomax | 8 | yes (mock location) | unknown | -| Juniper Systems | Geode GNS33 | yes | yes | +| Juniper Systems | Geode GNS33 | yes | yes (mock location) | | Leica | Leica FLX1004 | yes (mock location) | no | -| Leica | Leica FLX100 plus4 | yes (mock location) | yes**| -| Leica | Leica Zeno GG04plus4 | yes (mock location) | yes** | +| Leica | Leica FLX100 plus4 | yes (mock location) | yes (mock location)**| +| Leica | Leica Zeno GG04plus4 | yes (mock location) | yes (mock location)** | | | UNI-GR1| yes | no | | | UNI-GR2| yes | no | | | 6 | yes (mock location)| no | @@ -138,15 +138,15 @@ External GPS functionality depends on the manufacturer and on the specific model | Trimble | Trimble R25 | yes (mock location) | unknown | -- 1: **Carlson **, **Carlson ** - through [Carlson Layout](https://www.carlsonsw.com/product/carlson-layout) which will set a mock location in Android. -- 2: **Emlid Reach RX**, **Emlid Reach RS+**, **Emlid Reach RS2/RS2+**, **Emlid Reach RS3** - directly via Bluetooth connection, has an internal NTRIP client to receive corrections. Possible to set a mock location and connect the receiver via Bluetooth using [GPS Connector](https://play.google.com/store/apps/details?id=de.pilablu.gpsconnector) or WiFi using [Lebefure NTRIP Client](https://play.google.com/store/apps/details?id=com.lefebure.ntripclient). -- 3: **Geode GNS3** - through *Geode Connect* app on [Android](https://play.google.com/store/apps/details?id=com.juniper.geode2a&hl=en_NZ&gl=US) or [iOS](https://apps.apple.com/us/app/geode-connect/id1446098695), which also acts as an NTRIP client and sends corrections to the device. -- 4: **Leica FLX100**, **Leica FLX100 plus**, **Leica Zeno GG04plus** - through *Leica Zeno Connect* app on [Android](https://play.google.com/store/apps/details?id=com.leica.zenoconnect&hl=en&gl=US) which also acts as a NTRIP client and sends the corrections to the device. The app will set a mock location in Android. It is also possible to connect directly via Bluetooth (even multiple phones can be connected at once), but if no phone has Zeno app running, there will be no corrections available. - ** *Leica Zeno Connect* is also available on [iOS](https://apps.apple.com/us/app/zeno-connect/id1310344749). It is known to support **Leica FLX100 plus** and **Leica Zeno GG04plus**. However, on iOS, the vertical accuracy information is not transferred to through *Leica Zeno Connect*. The will not display the correct value of the vertical accuracy. -- 5: **Trimble R1**, **Trimble R2**, **Trimble Catalyst** - through [*Trimble Mobile Manager* app](https://play.google.com/store/apps/details?id=com.trimble.trimblemobilemanager) which also acts as a NTRIP client and sends the corrections to the device. The app will set a mock location in Android. -- 6: ** ** - through * Connector* app on [Android](https://play.google.com/store/apps/details?id=eu.apglos.attenbergerapp1&hl=en&gl=US). -- 7: ** ** - the device uses a SIM Card that can be configured for NTRIP. It can be connected to the via Bluetooth (without using a mock location). -- 8: **Geomax Zenith06, Zenith60** - through *Geomax X-PAD* app on Android, using a GNSS Mock licence from Geomax and the *Mock GNSS* option in the app. -- 9: **** - through [*GNSS Master* app](https://play.google.com/store/apps/details?id=com.gnssmaster&hl=en&gl=US&pli=1) which also acts as a NTRIP client and sends the corrections to the device. Detailed steps can be found in the tutorial [How to connect kit to Mergin Maps for centimetre-accurate mapping](https://www.ardusimple.com/how-to-connect-ardusimple-kit-to-mergin-maps-for-centimeter-accuracte-mapping/). +- 1: **Carlson **, **Carlson ** - through [Carlson Layout](https://www.carlsonsw.com/product/carlson-layout) which will set a mock location in Android. +- 2: **Emlid Reach RX**, **Emlid Reach RS+**, **Emlid Reach RS2/RS2+**, **Emlid Reach RS3** - directly via Bluetooth connection, has an internal NTRIP client to receive corrections. Possible to set a mock location and connect the receiver via Bluetooth using [GPS Connector](https://play.google.com/store/apps/details?id=de.pilablu.gpsconnector) or WiFi using [Lebefure NTRIP Client](https://play.google.com/store/apps/details?id=com.lefebure.ntripclient). +- 3: **Geode GNS3** - through *Geode Connect* app on [Android](https://play.google.com/store/apps/details?id=com.juniper.geode2a&hl=en_NZ&gl=US) or [iOS](https://apps.apple.com/us/app/geode-connect/id1446098695), which also acts as an NTRIP client and sends corrections to the device. +- 4: **Leica FLX100**, **Leica FLX100 plus**, **Leica Zeno GG04plus** - through *Leica Zeno Connect* app on [Android](https://play.google.com/store/apps/details?id=com.leica.zenoconnect&hl=en&gl=US) which also acts as a NTRIP client and sends the corrections to the device. The app will set a mock location in Android. It is also possible to connect directly via Bluetooth (even multiple phones can be connected at once), but if no phone has Zeno app running, there will be no corrections available. + ** *Leica Zeno Connect* is also available on [iOS](https://apps.apple.com/us/app/zeno-connect/id1310344749). It is known to support **Leica FLX100 plus** and **Leica Zeno GG04plus**. However, on iOS, the vertical accuracy information is not transferred to through *Leica Zeno Connect*. The will not display the correct value of the vertical accuracy. +- 5: **Trimble R1**, **Trimble R2**, **Trimble Catalyst** - through [*Trimble Mobile Manager* app](https://play.google.com/store/apps/details?id=com.trimble.trimblemobilemanager) which also acts as a NTRIP client and sends the corrections to the device. The app will set a mock location in Android. +- 6: ** ** - through * Connector* app on [Android](https://play.google.com/store/apps/details?id=eu.apglos.attenbergerapp1&hl=en&gl=US). +- 7: ** ** - the device uses a SIM Card that can be configured for NTRIP. It can be connected to the via Bluetooth (without using a mock location). +- 8: **Geomax Zenith06, Zenith60** - through *Geomax X-PAD* app on Android, using a GNSS Mock licence from Geomax and the *Mock GNSS* option in the app. +- 9: **** - through [*GNSS Master* app](https://play.google.com/store/apps/details?id=com.gnssmaster&hl=en&gl=US&pli=1) which also acts as a NTRIP client and sends the corrections to the device. Detailed steps can be found in the tutorial [How to connect kit to Mergin Maps for centimetre-accurate mapping](https://www.ardusimple.com/how-to-connect-ardusimple-kit-to-mergin-maps-for-centimeter-accuracte-mapping/). **Did you use a GPS that is not in this list?** diff --git a/src/layer/variables/index.md b/src/layer/variables/index.md index 63cff238..870116e1 100644 --- a/src/layer/variables/index.md +++ b/src/layer/variables/index.md @@ -42,10 +42,10 @@ Extra position variables can be used as [default values in feature forms](../def Following variables are supported: - `@position_coordinate` - A point with the coordinates in WGS84. - `@position_latitude` - Latitude - - `@position_longitude` - Longitude - - `@position_elevation` - Orthometric or normal height - - `@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.* + - `@position_elevation_ellipsoid` - Ellipsoidal height. *May not be available for some providers, see [Elevations](../../gis/elevations/) for more detail.* + - `@position_geoid_separation` - Geoid or quasi-geoid height (undulation). *May not be available for some providers, see [Elevations](../../gis/elevations/) for more detail.* - `@position_direction` - The bearing measured in degrees clockwise from true north to the direction of travel. - `@position_ground_speed` - The ground speed, in meters/sec. - `@position_vertical_speed` - The vertical speed, in meters/sec. From 2bea703292a5ce1f1375a4f9847fa6bd97474c5d Mon Sep 17 00:00:00 2001 From: Alexandra Date: Thu, 26 Feb 2026 20:34:59 +0100 Subject: [PATCH 4/5] elevations --- scripts/wordlist.txt | 1 + src/field/external_gps/index.md | 2 +- src/field/mobile-app-ui/index.md | 9 ++--- src/gis/elevations/index.md | 67 +++++++++++++++++++++++--------- src/layer/variables/index.md | 3 +- 5 files changed, 55 insertions(+), 27 deletions(-) diff --git a/scripts/wordlist.txt b/scripts/wordlist.txt index 0b551828..21c8556d 100644 --- a/scripts/wordlist.txt +++ b/scripts/wordlist.txt @@ -29,6 +29,7 @@ DOP ECW ECR EE +EGM Emlid EPSG Esri diff --git a/src/field/external_gps/index.md b/src/field/external_gps/index.md index 6d2a0d6b..15e4019e 100644 --- a/src/field/external_gps/index.md +++ b/src/field/external_gps/index.md @@ -74,7 +74,7 @@ Mock location should be only used if you are unable to connect the external GPS When setting up external GPS receiver on Android via mock location, we recommend using the *Internal (fused)* receiver option in [GPS Settings](../mobile-app-ui/#gps-settings) as this will show if mocked location is detected in the [GPS info](../mobile-app-ui/#current-position-and-gps-info) panel. ::: -External GPS can be connected and configured in Android to provide mock location using GPS apps (e.g. [Bluetooth GPS](https://play.google.com/store/apps/details?id=de.pilablu.gpsconnector) or apps from specific GPS manufacturers) as a source of GPS signal. the and other apps in your device will get the GPS position from the external GPS. +External GPS can be connected and configured in Android to provide mock location using GPS apps (e.g. [Bluetooth GPS](https://play.google.com/store/apps/details?id=de.pilablu.gpsconnector) or apps from specific GPS manufacturers) as a source of GPS signal. The and other apps in your device will get the GPS position from the external GPS. :::tip GPS manufacturer's apps often provide a setup for a NTRIP client, through which you are able to receive GPS corrections and achieve centimetre level accuracy. diff --git a/src/field/mobile-app-ui/index.md b/src/field/mobile-app-ui/index.md index 139bfeaa..3686ae2e 100644 --- a/src/field/mobile-app-ui/index.md +++ b/src/field/mobile-app-ui/index.md @@ -104,19 +104,16 @@ Tapping the GPS accuracy button opens the GPS info panel: - **Source** - *Internal* or *Internal (fused)* for the GPS of the mobile device - the name of the receiver for [external GPS](../external_gps/) receiver connected via Bluetooth + - *External (Mock)* for [external GPS](../external_gps/) receiver if mock location is detected - **Longitude, Latitude**: current position - **X, Y**: current position in the project's coordinate reference system - **Horizontal** and **Vertical accuracy** of the GPS position -- **Altitude**: orthometric height - - for *Internal* or *Internal (fused)* GPS, it is calculated from the ellipsoidal height using the geoid model by adding the geoid height (undulation) - - for *[external GPS](../external_gps/)*, it is the orthometric height as reported by the external GPS +- **Altitude**: orthometric height, see [Elevations](../../gis/elevations/) for more details - **Satellites (in use/view)**: number of satellites - **Speed** - **Last fix**: time of the last received GPS position - **GPS antenna height** that can be set in [GPS settings](#gps-settings) -- **Geoid separation**: geoid height (undulation) - - calculated from the geoid model for *Internal* or *Internal (fused)* GPS - - as reported by the *[external GPS](../external_gps/)* +- **Geoid separation**: geoid height (undulation), see [Elevations](../../gis/elevations/) for more details ### Sync The **Sync** button can be used to synchronise changes during the field survey. diff --git a/src/gis/elevations/index.md b/src/gis/elevations/index.md index 30fe0e7d..b9849bcb 100644 --- a/src/gis/elevations/index.md +++ b/src/gis/elevations/index.md @@ -6,60 +6,89 @@ description: See how Mergin Maps handles elevations, vertical transformations an [[toc]] -Whether you use internal or [external](../../field/external_gps/) GPS during your field survey, provides information about elevation. GPS receivers provide an *ellipsoid height* by default. However, for most applications, a *physical height* (also known as height above the sea level) is more appropriate. The difference between ellipsoid and physical height is called the *geoid separation* (also geoid height or undulation) and it can be applied to transform these heights. +When collecting data in the field, 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. + +When transforming elevations from ellipsoidal to orthometric, uses the EGM96 geoid model by default. However, it is also possible to use another geoid model as described in the [Using custom geoid](#using-custom-geoid) section. This may be especially useful when conducting more precise surveys or when a specific vertical reference system is required. + +:::warning Learn more +Height systems and elevations are complex topics. If you want to get more insight, we recommend going through some explanatory resources, such as [Height Systems](https://geodesy.science/item/height-systems/) by the International Association of Geodesy. +::: ::: tip Terminology The terms *geoid*, *geoid separation* and *orthometric heights* are used in the and this documentation for simplicity. -The same functionalities apply also if the used vertical reference system is defined by a *quasi-geoid*, another type of reference surface. Physical heights related to a quasi-geoid are called normal heights. +The same functionalities apply also if the used vertical reference system is defined by a *quasi-geoid*, another type of reference surface. Physical heights referred to a quasi-geoid are called *normal* heights. ::: Information about the altitude and geoid separation (if available) are displayed in the [GPS info panel](../../field/mobile-app-ui/#current-position-and-gps-info). -When transforming elevations, uses the geoid model by default. However, it is also possible to use another geoid model as described in the [Using custom geoid](#using-custom-geoid) section. This may be especially useful when using [external GPS](../../field/external_gps/) for higher positional precision or when a specific vertical reference system is required. +![GPS info panel](../../field/mobile-app-ui/mobile-app-gps-info.webp "GPS info panel") -There are some differences in the functionality and available details depending on the GPS provider, the OS of the mobile device and the connection setup. +There are some differences in the functionality and available details depending on the GPS provider, the OS of the mobile device and the connection setup, namely the type of elevation provided, available [position variables](../../layer/variables/#position-variables) and whether it is possible to use [custom geoid](#using-custom-geoid). ## 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 ellipsoid heights that are transformed by default to orthometric heights using the geoid model by adding the geoid height (undulation). These values are displayed in the [GPS info panel](../../field/mobile-app-ui/#current-position-and-gps-info) in the . +In Android, the [internal (fused)](../../field/mobile-app-ui/#gps-settings) GPS provider is used by default. It reports ellipsoidal heights that 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). -Geoid height, ellipsoid height, and orthometric height values are available and can be stored using [position variables](../../layer/variables/#position-variables). +**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). -If needed, it is possible to use the to [set up a different geoid model](#using-custom-geoid) and transform the elevations to a different vertical reference system. +**Custom geoid**: :white_check_mark: It is possible to use the to [set up a different geoid model](#using-custom-geoid) and transform the elevations to a different vertical reference system. ### iOS -iOS reports *above the sea level* heights by default. Therefore takes and displays this information by default and does not transform the heights in any way. +In iOS, the GPS provider can provide orthometric and ellipsoidal heights. + +#### Ellipsoidal height not available +If ellipsoidal height **is not** available, does not transform the elevations in any way. iOS reports *above the sea level* heights by default, so this information is displayed in the [GPS info panel](../../field/mobile-app-ui/#current-position-and-gps-info) in the . + +**Position variables**: +- :white_check_mark: orthometric elevation is available, +- :no_entry_sign: ellipsoidal elevation and :no_entry_sign: geoid separation values are **not** available and **can not** be stored using [position variables](../../layer/variables/#position-variables). + +**Custom geoid**: :no_entry_sign: It is not possible to use custom geoid model. -??? iOS does not provide the ellipsoid height nor the geoid height, so these values are **not** available and cannot be displayed or used. This is why it also not possible to use custom geoid to transform the elevations to a different vertical reference system. +#### Ellipsoidal height available +If iOS provides also the ellipsoidal heights, transforms them to **orthometric elevations using the EGM96 geoid model** by default and displays them in the [GPS info panel](../../field/mobile-app-ui/#current-position-and-gps-info). + +**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 to [set up a different geoid model](#using-custom-geoid) and transform the elevations to a different vertical reference system. ## External provider - Bluetooth External GPS can be connected [using Bluetooth](../../field/external_gps/#how-to-connect-external-gps-receiver-in-android-via-mergin-maps-mobile-app-recommended). If possible, we recommend to use this option. -If there is no [user-defined transformation](#using-custom-geoid), the uses data reported by the GPS provider as-is, including the ellipsoid height and geoid separation. These values are available and can be used as [position variables](../../layer/variables/#position-variables). However, does not receive information about the geoid model used; this information should be supplied by the GPS provider. +If there is no [user-defined transformation](#using-custom-geoid), the uses data reported by the GPS provider as-is, including the ellipsoidal height and geoid separation. does not receive information about the geoid model used; this information should be supplied by the GPS provider. -It is possible to use the to [set up a different geoid model](#using-custom-geoid) and transform the elevations to a different vertical reference system. In this case, the ellipsoid height and geoid separation are available. The defined geoid model is displayed in the . +**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 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 . ## External provider - Network -External GPS can be connected using network connection. The functionality works the same as described above in [External provider - Bluetooth ](#external-provider-bluetooth). +External GPS can be connected using network connection. The functionality works the same as described above in [External provider - Bluetooth ](#external-provider-bluetooth). It is available for both iOS and Android. -## External provider - Mock +## External provider - Mock location -::: warning -Mock location should be only used if you are unable to connect the external GPS directly in the . -::: +Mock location should be only used if you are unable to connect the external GPS directly in the . Because of system limitations, both Android and iOS send only a subset of available data. ### Android -If there is no [user-defined transformation](#using-custom-geoid), the uses data reported by the GPS provider as-is. The ellipsoid height and geoid separation values are **not** available. +If there is no [user-defined transformation](#using-custom-geoid), the uses data reported by the GPS provider as-is. -It is possible to use the to [set up a different geoid model](#using-custom-geoid) and transform the elevations to a different vertical reference system. However, it is necessary to set up **the mock app to report ellipsoid heights**, otherwise the geoid separation would be applied twice leading to incorrect elevation values. +**Position variables**: +- :white_check_mark: orthometric elevation is available, +- :no_entry_sign: ellipsoidal elevation and :no_entry_sign: geoid separation values are **not** available and **can not** be stored using [position variables](../../layer/variables/#position-variables). + +**Custom geoid**: :warning: It is possible to use the to [set up a different geoid model](#using-custom-geoid) and transform the elevations to a different vertical reference system. However, it is necessary to set up **the mock app to report ellipsoidal heights**, otherwise the geoid separation would be applied twice leading to incorrect elevation values. ### iOS -When using the mock location, iOS only sends a minimal subset of available GPS data, namely the coordinates (X, Y, elevation). It is not possible to obtain or display any other position variables, accuracy included. +The uses data reported by the GPS provider as-is. + +**Position variables**: :warning: When using the mock location, iOS only sends a minimal subset of available GPS data, namely the coordinates X, Y, and elevation. It is not possible to obtain or display any other [position variables](../../layer/variables/#position-variables), including accuracy. + +**Custom geoid**: :no_entry_sign: It is not possible to use custom geoid model. ## Using custom geoid diff --git a/src/layer/variables/index.md b/src/layer/variables/index.md index 870116e1..588c6890 100644 --- a/src/layer/variables/index.md +++ b/src/layer/variables/index.md @@ -62,10 +62,11 @@ Following variables are supported: - for external GPS, returns "external" - `@position_provider_name` - GPS device name. - for internal GPS, returns "Internal" - - for external GPS, returns the name of the external device + - for [external GPS](../../external_gps/), returns the name of the external device - `@position_provider_address` - GPS device address. - for internal GPS, returns "" - for external GPS, returns the MAC address + - for external GPS if mock location is detected, returns "External (Mock)" - `@position_hdop` - Horizontal dilution of precision (HDOP) - `@position_vdop` - Vertical dilution of precision (VDOP) - `@position_pdop` - Position (3D) dilution of precision (PDOP) From 1b012bcd0f1cb9a1f1d316acbfa4a683f038027f Mon Sep 17 00:00:00 2001 From: Alexandra Date: Thu, 26 Feb 2026 20:39:02 +0100 Subject: [PATCH 5/5] fix --- src/gis/elevations/index.md | 6 ++++-- src/layer/variables/index.md | 8 ++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/gis/elevations/index.md b/src/gis/elevations/index.md index b9849bcb..2827a405 100644 --- a/src/gis/elevations/index.md +++ b/src/gis/elevations/index.md @@ -59,7 +59,7 @@ If iOS provides also the ellipsoidal heights, transforms th ## External provider - Bluetooth -External GPS can be connected [using Bluetooth](../../field/external_gps/#how-to-connect-external-gps-receiver-in-android-via-mergin-maps-mobile-app-recommended). If possible, we recommend to use this option. +On Android, external GPS can be connected [using Bluetooth](../../field/external_gps/#how-to-connect-external-gps-receiver-in-android-via-mergin-maps-mobile-app-recommended). If possible, we recommend to use this option. If there is no [user-defined transformation](#using-custom-geoid), the uses data reported by the GPS provider as-is, including the ellipsoidal height and geoid separation. does not receive information about the geoid model used; this information should be supplied by the GPS provider. @@ -68,7 +68,9 @@ If there is no [user-defined transformation](#using-custom-geoid), the 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 . ## External provider - Network -External GPS can be connected using network connection. The functionality works the same as described above in [External provider - Bluetooth ](#external-provider-bluetooth). It is available for both iOS and Android. +External GPS can be connected using network connection on both iOS and Android. We recommend to use this option. + +The functionality is the same as described above in [External provider - Bluetooth ](#external-provider-bluetooth). ## External provider - Mock location diff --git a/src/layer/variables/index.md b/src/layer/variables/index.md index 588c6890..c8c28a74 100644 --- a/src/layer/variables/index.md +++ b/src/layer/variables/index.md @@ -59,14 +59,14 @@ Following variables are supported: - `@position_gps_antenna_height` - Antenna height as defined in [GPS settings](../../field/mobile-app-ui/#gps-settings) - `@position_provider_type` - GPS device type. - for internal GPS, returns "internal" - - for external GPS, returns "external" + - for [external GPS](../../field/external_gps/), returns "external" - `@position_provider_name` - GPS device name. - for internal GPS, returns "Internal" - - for [external GPS](../../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 "" - - for external GPS, returns the MAC address - - for external GPS if mock location is detected, returns "External (Mock)" + - for [external GPS](../../field/external_gps/), returns the MAC address + - for [external GPS](../../field/external_gps/) if mock location is detected, returns "External (Mock)" - `@position_hdop` - Horizontal dilution of precision (HDOP) - `@position_vdop` - Vertical dilution of precision (VDOP) - `@position_pdop` - Position (3D) dilution of precision (PDOP)