Baseflow / Baseflow/flutter-geocoding

[Bug]: Incorrect district/neighborhood returned for coordinates in Istanbul, Turkey

Ouverte
#286 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Dart
Étoiles
153
Forks
92
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

### 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
```

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Aucun fichier source ni test n’est indiqué. Commencez par reproduire le résultat Android avec geocoding 4.0.0 aux coordonnées 41.030011, 28.6397551, puis suivez le chemin de géocodage Android et examinez comment les champs administratifs sont renseignés. Le travail est terminé lorsque la localisation indique Esenyurt au lieu de Büyükçekmece, ou lorsque la limitation de la plateforme est clairement documentée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
android, dart, flutter
Domaine
mobile
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.