Frage: Was ist der sauberste Weg, um ein Place
Objekt aus einem ID-String zu erstellen?Wie verwende ich GeoDataApi.getPlaceById?
Ich möchte einige place
Objekte aus fest codierten IDs machen. Denken Sie etwas wie Place place1 = new Place("ChIJS_zBNNbXAhURy-FuRT5ib9k")
, aber das funktioniert natürlich nicht.
Ich stieß auf GeoDataApi.getPlaceById
, aber die Dokumentation ist verwirrend.
Das API in der Regel zum Nachschlagen, was ein Benutzer Eingabe (optional mit Auto-Vervollständigung) verwendet wird, aber ich etwas kleine und sauberes muß (man denkt: Einheit Testzwecke)
Meine Forschung: How to get a Place by ID
Um einen Ort nach ID zu erhalten, rufen Sie
GeoDataApi.getPlaceById
an und übergeben Sie eine oder mehrere Ortskennungen.Die API gibt eine
PlaceBuffer
in einerPendingResult
zurück. DiePlaceBuffer
enthält eine Liste vonPlace
Objekten, die den angegebenen Platzkennungen entsprechen.
Dokumentation:
Place (das Objekt erforderlich)
PlaceBuffer (konvertierbar zu einem Platz)
getPlaceById (gibt einen PendingResult)
Was ich mit bin stecken: Ich kann nicht eine elegante Art und Weise finden eine PendingResult
in eine PlaceBuffer
einzuschalten.
Die API gibt eine
PlaceBuffer
in einerPendingResult
zurück.
...
Das Endergebnis Objekt aus einem
PendingResult<R>
ist vom TypR
, die in einer von zwei Arten abgerufen werden können.
- über in einem Objekt, indem Schnittstelle
ResultCallback
zusetResultCallback(ResultCallback)
Umsetzung Anrufeawait()
oderawait(long, TimeUnit)
oder- über einen Rückruf zu blockieren.
Ein Rückruf ist zu chaotisch, und ich kann keinen Code finden, die await
daraus lernen verwendet.
Ich fand ein Beispiel unter http://www.truiton.com/2015/04/android-places-api-autocomplete-getplacebyid/ – xomena
@xomena Ich sah bereits, dass & das gelesen haben. Einige 'ctrl + f' helfen bei so großen Code-Schnipsel. Das hilft kaum. –