Un forfait Flutter pour Effronté et Inverse géocodage à l’aide de l’API Google Maps Platform Geocoding. Ce package fournit des données plus détaillées à partir de la réponse de l’API, telles que Address Components
, Geometry
, Place Id
et Status Codes
.
🎯 Pré-requis
Avant de commencer à utiliser ce package, vous avez besoin d’un projet avec un compte de facturation et l’API de géocodage activée sur Plateforme Google Maps.
🔨 Mise en place
dependencies:
fl_geocoder: ^0.0.1
⚙ Importer
import 'package:fl_geocoder/fl_geocoder.dart';
🕹️ Utilisation
Créer une instance de FlGeocoder
pour accéder aux fonctionnalités disponibles pour le géocodage. Vous devez transmettre une clé API valide pour que les fonctions fonctionnent comme prévu. D’autre part, ce package fournit des messages d’erreur dans lesquels vous pouvez déboguer et en découvrir la cause.
final geocoder = const FlGeocoder('YOUR-API-KEY');
GestureDetector(
onTap: () async {
final coordinates = Location(40.714224, -73.961452);
final results = await geocoder.findAddressesFromLocationCoordinates(
location: coordinates,
useDefaultResultTypeFilter: isFiltered,
// resultType: 'route', // Optional. For custom filtering.
);
},
child: Container(
padding: const EdgeInsets.symmetric(
horizontal: 8.0, vertical: 4.0),
margin: const EdgeInsets.symmetric(horizontal: 8.0),
decoration: const BoxDecoration(
color: Colors.blue,
borderRadius: BorderRadius.all(Radius.circular(5.0))),
child: Text('Search',
style: const TextStyle(color: Colors.white)),
),
),
FlGéocodeur
FlGeocoder
contient trois fonctionnalités différentes pour le géocodage.
1. findAddressesFromLocationCoordinates
Rechercher les adresses correspondantes à partir de données [Location].
Arguments | Taper | Description |
---|---|---|
lieu | Lieu | Valeurs requises spécifiant l’emplacement pour lequel vous souhaitez obtenir l’adresse lisible la plus proche. |
type de résultat | Chaîne de caractères? | Un filtre d’un ou plusieurs types d’adresses, séparés par une barre verticale (|). Si le paramètre contient plusieurs types d’adresses, l’API renvoie toutes les adresses correspondant à l’un des types. |
useDefaultResultTypeFilter | bourdonner | Un argument facultatif qui vérifie s’il faut utiliser le type de filtre par défaut fourni par ce package qui sont `street_number |
2. findAddressesFromAddress
Rechercher la liste d’adresses disponibles correspondant à la chaîne donnée [address] requete.
Arguments | Taper | Description |
---|---|---|
adresse | Chaîne de caractères | Argument obligatoire où la zone spécifique de géocodage sera basée. |
2. findAddressesFromPlaceId
Recherchez la liste d’adresses disponibles correspondant à l’identifiant de lieu donné.
Arguments | Taper | Description |
---|---|---|
identifiant | Chaîne de caractères | Lieu d’argument requis [id]s identifient de manière unique un lieu dans la base de données Google Adresses et sur Google Maps. |
❌ Gestion des erreurs
GeocodeFailure
vous donne l’explication lisible par l’homme de l’erreur que vous avez rencontrée.
final latitude = double.parse(latitudeController.text);
final longitude = double.parse(longitudeController.text);
final coordinates = Location(latitude, longitude);
try {
final results =
await widget.geocoder.findAddressesFromLocationCoordinates(
location: coordinates,
useDefaultResultTypeFilter: isFiltered,
);
} on GeocodeFailure catch (e) {
// Do some debugging or show an error message.
log(e.message ?? 'Unknown error occured.');
} catch (_) {
// Do some debugging or show an error message.
log('Generic failure occured.');
}
🐞 Bugs/Demandes
Si vous rencontrez des problèmes, n’hésitez pas à ouvrir un problème. Si vous pensez qu’il manque une fonctionnalité à la bibliothèque, veuillez créer un ticket sur Github et nous l’examinerons. Les demandes de tirage sont également les bienvenues.
📃 Licence
MA licence
GitHub
Voir Github