如何将 google 地理编码和时区 api 与官方 java 库一起使用?

how do you use the google geocode and timezone api with the official java library?

我知道如何以老式的方式进行调用,我基本上只是构造一个字符串,该字符串是请求的完整 url,然后将其发送以获得响应。

但是,google 有这个用于 java 的库可用 (https://developers.google.com/api-client-library/java),我想使用它。但是,我无法在他们的 github 示例页面上找到有关如何使用地理编码或时区 APIs 的示例。

他们为其他服务提供的示例似乎真的很复杂。我只想看一个基本示例,说明如何使用我的 API 键构建和拨打电话并获得响应。

在伪代码中我想做的是:

String location = "123 main street, new york, ny";
String response = // send location plus my API key to google geocoder
// now have a json file response that I can deserialize?

我建议您查看 Java Client for Google Maps Services Google 地图团队的官方库,您可以在 GitHub 上找到它,其中有一些基本的使用示例。

Readme.md 文件中,您将找到有关如何通过 Maven 或 Gradle.

将此库添加到项目中的说明

将库与地理编码 API 结合使用的代码片段如下

GeoApiContext context = new GeoApiContext.Builder()
            .apiKey("YOUR_API_KEY")
            .build();
String location = "123 main street, new york, ny";
try {
    GeocodingApiRequest req = GeocodingApi.newRequest(context);
    GeocodingResult[] results = req.address(address).await();
    Gson gson = new GsonBuilder().setPrettyPrinting().create();
    String jsonResults = gson.toJson(results);
} catch(ApiException e){
    //Handle API exceptions here
}   

时区 API 的代码片段如下

GeoApiContext context = new GeoApiContext.Builder()
            .apiKey("YOUR_API_KEY")
            .build();
LatLng location = new LatLng(41.385064,2.173403);
java.util.TimeZone result = TimeZoneApi.getTimeZone(context, location).await();

有关 类 和库方法的更多详细信息,您可以参考位于

的 JavaDoc

https://www.javadoc.io/doc/com.google.maps/google-maps-services/latest/index.html

尽情享受吧!