新版Places API客户端库返回字段指定及参数疑问
Google Places API v1 Java客户端常见问题解答
1. 如何在请求中指定要返回的字段?
可以通过GetPlaceRequest.Builder的setFieldsMask()方法,传入FieldMask对象来指定需要返回的字段,只获取所需字段能减少响应体积并提升性能。示例代码如下:
import com.google.protobuf.FieldMask; // 构建请求时添加字段掩码配置 GetPlaceRequest request = GetPlaceRequest.newBuilder() .setName(PlaceName.of("[PLACE_ID]").toString()) .setFieldsMask(FieldMask.newBuilder() .addPaths("displayName") // 地点名称 .addPaths("formattedAddress") // 格式化地址 .addPaths("location") // 地理位置坐标 .build()) // 其他请求配置 .build();
字段路径对应Place类中的属性名,可直接查看客户端库中Place类的源码获取所有可用字段。
2. setLanguageCode、setRegionCode、setSessionToken的作用
- setLanguageCode:设置返回结果的语言偏好,比如传入
zh-CN会返回中文的地点名称、地址等本地化数据。若不指定,会根据请求IP或默认规则匹配语言,但显式指定后会优先使用该语言的内容。 - setRegionCode:设置区域代码(如
CN代表中国),用于优化地点结果的排序、过滤逻辑,比如优先返回该区域内的地点,同时调整地址格式、本地化字段以符合目标区域的规范。 - setSessionToken:用于关联同一用户会话内的多个请求(比如自动补全请求与后续的GetPlace请求),使用同一Token的请求会被视为同一会话,避免重复计费,同时优化请求的连贯性,你的猜测是正确的。
注:新版Places API v1基于gRPC实现,上述部分配置是gRPC客户端特有的,因此在旧版HTTP GET请求中不会出现。迁移时可通过查看客户端库内的类源码,获取字段定义与配置细节。
内容的提问来源于stack exchange,提问作者hnbm
相关产品推荐
相关产品推荐

