Vous pouvez utiliser le service Places et l'API Geocoding avec le SDK Maps pour Android afin de rechercher des régions et d'obtenir plus d'informations sur des lieux. Le service Places et l'API Geocoding constituent des solutions performantes et stables pour obtenir des ID de lieu. Si vous utilisez déjà des ID de lieu, vous pouvez les réutiliser avec le style basé sur les données pour les limites.
Vous pouvez ajouter le service Places et le géocodage à vos applications du SDK Maps pour Android comme suit :
- Le SDK Places pour Android est une bibliothèque Android contenant des méthodes permettant de renvoyer des informations sur des lieux.
- L'API Places affiche des informations sur les lieux à l'aide de requêtes HTTP.
- La classe Geocoder peut effectuer un geocoding et un geocoding inversé de manière dynamique à partir d'une entrée utilisateur.
- L'API Geocoding vous permet de géocoder des adresses statiques connues.
Utiliser le service Places
Utiliser Text Search (nouvelle version) pour rechercher un ID de lieu
Vous pouvez utiliser l'API REST Text Search (nouvelle version) dans l'API Places pour obtenir un ID de lieu qui inclut les données de région en spécifiant places.id
dans le masque de champ. L'utilisation de Text Search (nouvelle version) pour demander des ID de lieu n'occasionne pas de frais. En savoir plus
Par exemple, pour obtenir l'ID de lieu de Trinidad (Californie), vous pouvez effectuer l'appel d'API suivant :
curl -X POST -d '{ "textQuery" : "Trinidad, CA" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.id' \ 'https://places.googleapis.com/v1/places:searchText'
Utiliser Place Autocomplete pour rechercher des régions
Le service Place Autocomplete du SDK Places pour Android permet aux utilisateurs de rechercher facilement des régions. Pour configurer le service Place Autocomplete afin qu'il ne renvoie que des régions, utilisez AutocompleteSupportFragment.setTypesFilter(List)
pour définir le filtre de type sur PlaceTypes.REGIONS
.
Obtenir des détails sur un lieu pour une région
Le service Place Details du SDK Places pour Android renvoie des données pour une région qui peuvent être très utiles. Par exemple, vous pouvez :
- rechercher des ID de lieu de limites en fonction de noms de lieux ;
- obtenir la fenêtre d'affichage pour zoomer sur une limite ;
- obtenir le type d'élément cartographique de la limite (par exemple,
locality
) ; - obtenir l'adresse formatée, qui correspond à "Nom du lieu, État, Pays" dans la région des États-Unis (par exemple, "Ottumwa, IA, USA") ;
- obtenir d'autres données utiles, comme des photos.
Utiliser l'API Geocoding
L'API Geocoding vous permet de convertir une adresse en coordonnées de latitude et de longitude et en ID de lieu, ou de convertir des coordonnées de latitude et de longitude ou un ID de lieu en adresse. Les utilisations suivantes se combinent bien avec un style basé sur les données pour les limites :
- Utilisez Geocoding pour obtenir la fenêtre d'affichage d'une région.
- Appliquez un filtrage par composants à votre appel Geocoding pour obtenir les ID de lieu des régions administratives 1 à 4, des localités ou des codes postaux.
- Le geocoding inversé permet de trouver des ID de lieu à partir de coordonnées de latitude et de longitude, ou même d'afficher les ID de lieu de tous les composants d'un lieu donné.
L'exemple suivant utilise une adresse (encodée en URL) pour envoyer une requête à l'API Geocoding :
https://maps.googleapis.com/maps/api/geocode/json?address=1600%20Amphitheatre%20Pkwy%20Mountain%20View%20CA&key=YOUR_API_KEY
Vous pouvez utiliser le geocoding inversé pour trouver des ID de lieu. L'exemple de fonction de service Geocoding suivant renvoie les ID de lieu pour tous les composants d'adresse aux coordonnées de latitude et de longitude spécifiées :
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&key=YOUR_API_KEY
Utilisez le geocoding inversé avec le filtrage par composants pour obtenir le composant d'adresse pour un ou plusieurs des types suivants à l'emplacement spécifié :
administrativeArea
country
locality
postalCode
L'exemple de fonction suivant illustre l'utilisation du service Geocoding, en ajoutant des restrictions de composants avec geocoding inversé pour obtenir tous les composants d'adresse à l'emplacement spécifié pour le type locality
uniquement :
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&result_type=locality&key=YOUR_API_KEY