ARTICLE AD BOX
Problem
I'm using the geolocator package in Flutter to get the current location and then reverse geocode it to a display address. The same physical device location returns noticeably different coordinates on iOS and Android, which causes the geocoded address to differ between platforms.
Code
Getting current position:
dart
return await Geolocator.getCurrentPosition( desiredAccuracy: LocationAccuracy.high, );Reverse geocoding (Google Maps Geocoding API):
dart
static Future<String> getAddressFromLatLng(String? lat, String? lng) async { final double roundedLat = double.parse(double.parse(lat!).toStringAsFixed(5)); final double roundedLng = double.parse(double.parse(lng!).toStringAsFixed(5)); final uri = Uri.parse( 'https://maps.googleapis.com/maps/api/geocode/json' '?latlng=$roundedLat,$roundedLng' '&key=$apiKey' '&language=en', ); final response = await http.get(uri); final data = json.decode(response.body); return data['results'][0]['formatted_address']; }Logs
iOS:
Got current location: 22.685498910314223, 75.85949381064067 Rounded: 22.6855, 75.85949 Resolved address: Mangal Nagar, Indore, 452014Android (same room, same time):
Got current location: 22.685553, 75.8595931 Rounded: 22.68555, 75.85959 Resolved address: AB Road, Vishnu Puri Colony, Indore, 452014What I've already tried
Rounding coordinates to 5 decimal places before the API call — coordinates are still ~10–15 meters apart after rounding, enough to cross a street boundary
Switching from formatted_address to address_components — skipping street_number and route, only using sublocality, locality, postal_code — still getting different neighborhood names
Filtering result_type=neighborhood|sublocality in the geocoding request — partially helped but still inconsistent
Questions
Why does LocationAccuracy.high produce coordinates ~10–15 meters apart between iOS and Android on the same physical location?
Is there a reliable way to get consistent coordinates across both platforms using geolocator?
Should I be averaging multiple position readings to stabilize the result, and if so what is the recommended approach?
