Accuracy of Decimal Places in Latitude and Longitude Degrees

As mentioned in our User Guide, Epicollect5 accommodates up to 6 decimal places to precisely identify a location within 11cm.
Google Maps employs an identical level of precision, see:

We round the lat/long values to 6 decimal places by default.

Coordinates  |  Maps JavaScript API  |  Google for Developers.

Despite their docs, we confirm Google Maps for Android recently gives you 7 decimal digits precision for latitude and longitude. The only way for Epicollect5 to accept those coordinates is to round them to 6-digit precision automatically when values from Google Maps are pasted into Epicollect5.

However, we recommend Organic Maps as an open-source and trackers-free alternative based on OpenStreetMap.

More info on Epicollect5 LOCATION question type at

Implement a higher level of precision

To achieve a higher level of precision, you may consider incorporating a GROUP question that includes separate TEXT questions for latitude and longitude. By utilizing a regex validation on these individual values, you can enhance the accuracy of your location data. Be sure to use the TEXT question type and not the DECIMAL. It might seem counter-intuitive, but using decimals with that level of precision might cause some unexpected rounding due to the way decimal values are represented in programming languages.

It’s important to note that utilizing this approach will result in the exclusion of these locations as markers on the Epicollect5 map, as they will be treated as text questions rather than geographical coordinates.

To validate latitude with 8 decimal degrees, you can use the following regex pattern:

^[-+]?([1-8]?\d(\.\d{1,8})?|90(\.0{1,8})?)$

Explanation:

  • ^: Asserts the start of the string.
  • [-+]?: Matches an optional positive or negative sign.
  • ([1-8]?\d(\.\d{1,8})?|90(\.0{1,8})?): Two alternatives:
    • [1-8]?\d(\.\d{1,8})?: Latitude between -90 and 90 excluding 90, with up to 8 decimal places.
    • 90(\.0{1,8})?: Latitude of 90 with up to 8 decimal places.
  • $: Asserts the end of the string.

This pattern allows latitude values like -90.12345678, 0.98765432, 90, -12.34567890, etc. Adjust the pattern as needed for your specific requirements.

To validate longitude with 8 decimal degrees, you can use the following regex pattern:

^[-+]?((1[0-7]\d(\.\d{1,8})?)|([1-9]?\d(\.\d{1,8})?)|180(\.0{1,8})?)$

Explanation:

  • ^: Asserts the start of the string.
  • [-+]?: Matches an optional positive or negative sign.
  • Two alternatives for longitude:
    • (1[0-7]\d(\.\d{1,8})?): Longitude between -180 and 179 excluding 180, with up to 8 decimal places.
    • ([1-9]?\d(\.\d{1,8})?): Longitude between -99 and 99, with up to 8 decimal places.
    • 180(\.0{1,8})?: Longitude of 180 with up to 8 decimal places.
  • $: Asserts the end of the string.

This pattern allows longitude values like -179.12345678, 0.98765432, 180, -12.34567890, etc. Adjust the pattern as needed for your specific requirements.

Thank you for reporting this issue.