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

Open
#286 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
android, dart, flutter
Domain
mobile

Research direction

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.

Written by the indexing model from the issue text.

Description

Please check the following before submitting a new issue.
Please select affected platform(s)
  • 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
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
[✓] 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
Dominant language
Dart
Stars
153
Forks
92
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Baseflow/flutter-geocoding

All issues in Baseflow/flutter-geocoding

Similar issues

More Dart issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.