gpt4 book ai didi

java - 如何使用 GeoDataApi.getPlaceById?

转载 作者:行者123 更新时间:2023-11-30 10:42:24 24 4
gpt4 key购买 nike

问题:创建 Place 的最干净的方法是什么?来自 ID 字符串的对象?

我想做一些place硬编码 ID 之外的对象。想像 Place place1 = new Place("ChIJS_zBNNbXAhURy-FuRT5ib9k") ,但这当然行不通。

我遇到了 GeoDataApi.getPlaceById ,但文档令人困惑。

该 API 通常用于查找用户输入的任何内容(可选地使用自动完成),但我需要更小更清晰的东西(想想:单元测试目的)


我的研究: How to get a Place by ID

To get a place by ID, call GeoDataApi.getPlaceById, passing one or more place IDs.

The API returns a PlaceBuffer in a PendingResult. The PlaceBuffer contains a list of Place objects that match the supplied place IDs.

文档:

Place(需要的对象)

PlaceBuffer(可转换为地点)

PendingResult

getPlaceById(返回一个 PendingResult)


我遇到的问题:我找不到一种优雅的方式来转换 PendingResultPlaceBuffer .

The API returns a PlaceBuffer in a PendingResult.

...

The final result object from a PendingResult<R> is of type R, which can be retrieved in one of two ways.

  • via blocking calls to await(), or await(long, TimeUnit), or
  • via a callback by passing in an object implementing interface ResultCallback to setResultCallback(ResultCallback).

一个回调太乱了,我找不到任何使用await的代码从中学习。

最佳答案

你可以很容易地把一个 PendingResult来自 getPlaceById进入PlaceBuffer .您只需调用 await()方法:

PendingResult<PlaceBuffer> result = Places.GeoDataApi.getPlaceById(
mGoogleApiClient, placeId);
PlaceBuffer placeBuffer = result.await();

(如果您愿意,您当然可以在一行中完成。)

有调用GeoDataApi.getPlaceByID的例子和 PendingResult<PlaceBuffer>.awaithttps://github.com/googlesamples/android-play-places .

关于java - 如何使用 GeoDataApi.getPlaceById?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38163091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com