Accuracy of Decimal Places in Latitude and Longitude Degrees

Hi,
In our ‘Anamalai Mammals’ project, while making field observations of wild animals the mobile phone epicollect5 data form takes GPS coordinates recording the location of the observer (rather than the animal, who is at a distance). To edit this location and enter the coordinates of the watched wild animal is possible on epicollect5 (using Update Location), but this has a small glitch. In the field, it is easy enough to open Google Maps and drop a pin at the correct location and copy the dropped pin coordinates into the epicollect5 form (while editing/updating the location). However, epicollect5 does not accept the default 7 decimal places (e.g., 10.1234567, 77.1234567) that Google maps provides while copying the location (giving the following error: Invalid value).

By trial and error, we figured that the problem was the number of decimal places: epicollect5 accepts only to 6 places (e.g., 10.123456, 77.123456). So this then requires an additional manual edit of the decimal places/rounding off, which may lead to some errors.

Would it be possible to change the settings on epicollect5 to allow Update Location to receive pasted coordinates in decimal degrees up to 7 (or even 8) decimal places?

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 gives you 7 decimal digits precision for latitude and longitude. The only way for Epicollect5 to accept those coordinates would be to round them to 6-digit precision automatically in a future update.

However, Epicollect5 does not use Google Maps and we recommend Organic Maps as an open-source and trackers-free alternative based on OpenStreetMap.

More info on Epicollect5 LOCATION question type at

To implement 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.

Thank you. This is very detailed and very useful. Also for pointing to Organic Maps.

1 Like