Flutter Geocoding Plugin

pub package License: MIT style: effective dart Buid status codecov

A Flutter Geocoding plugin which provides easy geocoding and reverse-geocoding features.

Important:

  1. This plugin uses the free Geocoding services provided by the iOS and Android platforms. This means that there are restrictions to their use. More information can be found in the Apple documentation for iOS and the Google documentation for Android. When a PlatformException(IO_ERROR, ...) gets thrown, most of the times it means that the rate limit has been reached.
  2. The availability of the Google Play Services depends on your country. If your country doesn't support a connection with the Google Play Services, you'll need to try a VPN to establish a connection. For more information about how to work with Google Play Services visit the following link: https://developers.google.com/android/guides/overview

Usage

To use this plugin, please follow the installation guide on the official geocoding plugin page.

NOTE: This plugin relies on the AndroidX version of the Android Support Libraries. This means you need to make sure your Android project is also upgraded to support AndroidX. Detailed instructions can be found here.

The TL;DR version is:

  1. Add the following to your "gradle.properties" file:
android.useAndroidX=true
android.enableJetifier=true
  1. Make sure you set the compileSdkVersion in your "android/app/build.gradle" file to 33:
android {
 compileSdkVersion 33

 ...
}
  1. Make sure you replace all the android. dependencies to their AndroidX counterparts (a full list can be found Android migration guide).

API

To translate an address into latitude and longitude coordinates you can use the placemarkFromAddress method:

import 'package:geocoding/geocoding.dart';

List<Location> locations = await locationFromAddress("Gronausestraat 710, Enschede");

If you want to translate latitude and longitude coordinates into an address you can use the placemarkFromCoordinates method:

import 'package:geocoding/geocoding.dart';

List<Placemark> placemarks = await placemarkFromCoordinates(52.2165157, 6.9437819);

The setLocaleIdentifier with the localeIdentifier parameter can be used to enforce the results to be formatted (and translated) according to the specified locale. The localeIdentifier should be formatted using the syntax: languageCode_countryCode. Use the ISO 639-1 or ISO 639-2 standard for the language code and the 2 letter ISO 3166-1 standard for the country code. Some examples are:

Locale identifier Description
en All English speakers (will translate all attributes to English)
en_US English speakers in the United States of America
en_UK English speakers in the United Kingdom
nl_NL Dutch speakers in The Netherlands
nl_BE Dutch speakers in Belgium

Issues

Please file any issues, bugs or feature requests as an issue on our GitHub page. Commercial support is available, you can contact us at hello@baseflow.com.

Want to contribute

If you would like to contribute to the plugin (e.g. by improving the documentation, solving a bug or adding a cool new feature), please carefully review our contribution guide and send us your pull request.

Author

This geocoding plugin for Flutter is developed by Baseflow.

Libraries

geocoding