java - 在 Java 中使用 map API 时陷入反向地理编码

标签 java google-maps geocoding google-geocoding-api

所以我在尝试查找坐标的 RegionCode/State 时遇到了这个问题。我(假设)已经从 map API 正确地实现了反向地理编码。但是现在我被困在对数据做一些实际的事情上。我的代码是

 String API_KEY = "AIzaSyABXoV5ktBurLqodVntX6ImhNHOjDBgciQ";

 GeoApiContext apiContext = new GeoApiContext.Builder()
   .apiKey(API_KEY)
   .build();

 LatLng test = new LatLng( -8.96238,-40.68703);
 GeocodingApiRequest geocodingApi = GmapsController.reverseGeocode(apiContext, test);

现在我有了这个 geocodingApiRequest 我的问题是我将如何接收 RegionCode 字符串甚至地址 JSON

最佳答案

鉴于 API 规范,我希望以下两个能够工作,具体取决于您是否需要同步:

GeocodingResult[] results = geocodingApi.await();
for (GeocodingResult result: results) {
  String address = result.formattedAddress;
  // use it or check other fields on `result`
}

或异步行为

class FutureCompletingCallback implements PendingResult.Callback<GeocodingResult[]> {
    final CompletableFuture<GeocodingResult[]> resultsFuture;

    FutureCompletingCallback(CompletableFuture<GeocodingResult[]> resultsFuture) {
         this.resultsFuture = resultsFuture;
    }

    public void onResult(GeocodingResult[] results) {
        resultsFuture.complete(results);
    }

    public void onFailure(Throwable t) {
        resultsFuture.compleExceptionally(t);
    }
}

CompletableFuture<GeocodingResult[]> resultsFuture = new CompletableFuture<>();
geocodingApi.setCallback(new FutureCompletingCallback(resultsFuture));
// collect result synchronously
GeocodingResult[] results = resultsFuture.get()
// OR act asynchronously
resultsFuture.whenComplete(...some action...);

关于java - 在 Java 中使用 map API 时陷入反向地理编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50347075/

相关文章:

java - aws s3 cp > 如何在 aws Java SDK 中实现带有分段复制的 cp 命令

android - 如何编译播放服务:11. 2.0

javascript - 谷歌地图倾斜 View 与默认 map 类型

python - 从 GeoPy 地理编码器返回单个地址组件(城市、州等)

java - 从数组中删除重复的字符串?

java - 如何识别两个 HashMap 是否包含具有相同 ID 的对象

google-maps - 如何在不加载整个 Google Maps API 的情况下加载 Google ClientLocation API?

javascript - 如何添加地理编码服务(对于 MapBox)

ruby-on-rails-3 - 通过地理编码和在 map 上绘制在 Rails 中跟踪车辆

java - 根据文件的最后修改时间对 LinkedList<File> 进行排序