Sie können den Places-Dienst und den Geocoding API mit dem Maps SDK for Android zur Suche nach Regionen und um mehr Informationen zu Orten zu erhalten. Places-Dienst und Geocoding API sind leistungsstarke und stabile Alternativen zum Abrufen Orts-IDs. Falls Sie bereits Orts-IDs nutzen, können Sie sie mit datengestützten Stilen für Begrenzungen wiederverwenden.
So binden Sie den Places-Dienst und die Geocoding API in Ihre Maps SDK for Android-Apps ein:
- Places SDK for Android ist eine Android-Bibliothek mit Methoden zur Rückgabe von Informationen über an unterschiedlichen Orten.
- Die Places API gibt mithilfe von HTTP-Anfragen Informationen zu Orten zurück.
- Geocoder-Klasse kann anhand von Nutzereingaben dynamisch geocodieren und umgekehrt.
- Mit der Geocoding API können Sie statische, bekannte Adressen geocodieren.
Places-Dienst verwenden
Mit „Text Search (New)“ nach einer Orts-ID suchen
Sie können Text Search (New) verwenden.
REST API in der Places API, um eine Orts-ID zu erhalten, die die Region enthält
indem Sie places.id
in der Feldmaske angeben. Wenn die Text Search API (neu) nur verwendet wird, um Orts-IDs anzufordern, fallen keine Gebühren an. Weitere Informationen
Um beispielsweise die Orts-ID für Trinidad, CA abzurufen, können Sie Folgendes tun: API-Aufruf:
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'
„Place Autocomplete“ für die Suche nach Regionen verwenden
Die Funktion Place Autocomplete
im Places SDK for Android eine bequeme Möglichkeit,
nach Regionen suchen. Um den „Places Autocomplete“-Dienst so zu konfigurieren,
Nur Regionen zurückgeben, verwenden
AutocompleteSupportFragment.setTypesFilter(List)
um den Typfilter auf PlaceTypes.REGIONS
festzulegen.
Ortsdetails für eine Region abrufen
Im Bereich Place Details (Ortsdetails) im Places SDK for Android gibt Daten für eine Region zurück, sehr nützlich sein. Beispiele:
- anhand der Ortsnamen nach den Orts-IDs der jeweiligen Begrenzungen suchen
- den Darstellungsbereich abrufen, um eine Begrenzung anzuzeigen
- den Elementtyp für die Begrenzung abrufen (z. B.
locality
) - die formatierte Adresse abrufen, die in den USA in „Ort, Bundesstaat, Land“ aufgelöst wird (z. B. „Ottumwa, IA, USA“)
- andere nützliche Daten wie Fotos abrufen.
Geocoding API verwenden
Mit der Geocoding API können Sie eine Adresse in Breiten- und Längengradkoordinaten und eine Orts-ID umwandeln oder Breiten- und Längengradkoordinaten oder eine Orts-ID in eine Adresse. Die folgenden Anwendungsfälle lassen sich gut mit datengestützten Stilen für Begrenzungen kombinieren:
- Geocoding verwenden, um den Darstellungsbereich für eine Region abzurufen
- Das Filtern von Komponenten auf Ihren Geocoding-Aufruf anwenden, um die Orts-IDs für die Verwaltungsgebiete 1–4, den Ort oder die Postleitzahl abzurufen
- Umgekehrte Geocodierung verwenden, um Orts-IDs nach Breiten- und Längengrad zu finden -Koordinaten oder sogar Orts-IDs für alle Komponenten in einer bestimmten Standort.
Im folgenden Beispiel wird eine Adresse (mit URL-Escaping) verwendet, um eine Anfrage an den Geocoding API:
https://maps.googleapis.com/maps/api/geocode/json?address=1600%20Amphitheatre%20Pkwy%20Mountain%20View%20CA&key=YOUR_API_KEY
Mit der umgekehrten Geocodierung können Sie Orts-IDs ermitteln. Im folgenden Beispiel für Geocoding Dienstfunktion gibt die Orts-IDs für alle Adresskomponenten an der Koordinaten für Längen- und Breitengrad angeben:
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&key=YOUR_API_KEY
So verwenden Sie die umgekehrte Geocodierung mit Komponentenfilter, um die Adresskomponenten für einen oder mehrere der folgenden Typen am angegebenen Ort abzurufen:
administrativeArea
country
locality
postalCode
In der nächsten Beispielfunktion wird der „Geocoding“-Dienst verwendet, um Komponenteneinschränkungen mit umgekehrter Geocodierung hinzuzufügen und alle Adresskomponenten am angegebenen Ort nur für den locality
-Typ zu erhalten:
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&result_type=locality&key=YOUR_API_KEY