I might add that this may not be a problem with iNat. When I’ve had significant problems with this I found this to be the explanation:
When GPS signal is not available, Google approximates your location from your Wi-Fi and cellular connections.
In Google photos, if you click on a picture, go to info/properties etc to find the location of your picture on the map, if Google has indicated that location is approximate, it means that no geolocation data was embedded into the metadata for that photo when it was uploaded.
Google only offers this location approximation for the purpose of viewing the location on the map (etc). If you download or export these photos into another app from Google photos, Google photos will not embed their “approximation” data into the photo. They will return the photo back to you with same/similar metadata to when you uploaded it (ie, with no geolocation data).
The same goes for if you try to download/export an image that Google has “optimised” ie, they did some sort of post-production processing to the photo. I believe the geolocation data will not be embedded into the photo.
(Side note, it is possible to give your photos geolocation data using Google’s approximate location data, en mass, but it is requires a long explanation for how to do it, beyond the scope of what we’re talking about here. Message me if you want to know how to do it. This is useful if you want to retrospectively put geolocation data into your photos, using Google’s location history data)
One other aspect of this which may be relevant:
- if you free up space from your phone by deleting photos which have already been uploaded to Google photos (there is a function which does this in Google Photos), but you do it before all your observations have properly uploaded/synced in iNat, it seems to cause a range of problems with the observations, but I haven’t been able to identify a consistent pattern to the types of problems so far.