Baseflow / Baseflow/flutter-geocoding
[Bug]: Incorrect district/neighborhood returned for coordinates in Istanbul, Turkey
- Vorherrschende Sprache
- Dart
- Sterne
- 153
- Forks
- 92
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
### Please check the following before submitting a new issue.
- [x] I have searched the [existing issues](https://github.com/baseflow/flutter-geocoding/issues).
- [x] I have carefully [read the documentation](https://github.com/Baseflow/flutter-geocoding/blob/main/geocoding/README.md) and verified I have added the required platform specific configuration.
### Please select affected platform(s)
- [x] Android
- [ ] iOS
### Steps to reproduce
## Description
The geocode package is returning incorrect administrative area information for coordinates in Istanbul, Turkey. The coordinates point to Esenyurt district (Atatürk Mahallesi), but the package returns Büyükçekmece district instead.
### Expected results
- **Coordinates:** 41.030011, 28.6397551
- **Expected Location:** Atatürk Mahallesi, Esenyurt, Istanbul
- **Verification:** Google Maps correctly identifies this location as Esenyurt
### Actual results
- **Returned Location:** Atatürk, Büyükçekmece, Istanbul
- **Issue:** The district (ilçe) is incorrectly identified as Büyükçekmece instead of Esenyurt
### Code sample
Code sample
```dart
Future getDetailedAddress(double lat, double lng) async {
// Test coordinates in Esenyurt, Istanbul
lat = 41.030011;
lng = 28.6397551;
try {
List placemarks = await placemarkFromCoordinates(lat, lng);
if (placemarks.isNotEmpty) {
Placemark place = placemarks.first;
// Debug output
print('subLocality: ${place.subLocality}');
print('thoroughfare: ${place.thoroughfare}');
print('subThoroughfare: ${place.subThoroughfare}');
print('subAdministrativeArea: ${place.subAdministrativeArea}');
print('administrativeArea: ${place.administrativeArea}');
print('locality: ${place.locality}');
print('country: ${place.country}');
List addressParts = [];
if (place.subLocality != null && place.subLocality!.isNotEmpty) {
addressParts.add(place.subLocality!);
}
if (place.thoroughfare != null && place.thoroughfare!.isNotEmpty) {
addressParts.add(place.thoroughfare!);
}
if (place.subThoroughfare != null && place.subThoroughfare!.isNotEmpty) {
addressParts.add('No: ${place.subThoroughfare}');
}
if (place.subAdministrativeArea != null && place.subAdministrativeArea!.isNotEmpty) {
addressParts.add(place.subAdministrativeArea!);
}
if (place.administrativeArea != null && place.administrativeArea!.isNotEmpty) {
addressParts.add(place.administrativeArea!);
}
return addressParts.join(', ');
}
return null;
} catch (e) {
print('Error: $e');
return null;
}
}
```
### Version
geocoding: ^4.0.0
### Flutter Doctor output
Doctor output
```console
[✓] Flutter (Channel stable, 3.38.3, on macOS 26.1 25B78 darwin-arm64, locale tr-TR)
[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 16.4)
[✓] Chrome - develop for the web
[✓] Connected device (3 available)
[✓] Network resources
```
Beitragsleitfaden
Rechercherichtung
No source file or test is named. Start by reproducing the Android result with geocoding 4.0.0 at 41.030011, 28.6397551, then trace the Android geocoding path and inspect how administrative fields are populated. Done means the location reports Esenyurt rather than Büyükçekmece, or the platform limitation is clearly documented.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- android, dart, flutter
- Bereich
- mobile
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100