google places api docs明确指出:“重要提示:为避免为不需要的数据付费,请确保使用Autocomplete.setFields()
仅指定要使用的地点数据。”但是然后,当我调用getDetails()
方法时(请参见下面的通用y形式),我指定了fields
所设置的setFields()
。
我认为我基本上是通过getDetails()
方法进行设置的,但是考虑到文档中的谨慎操作,除了我们需要的东西之外,我也不想让任何人感到惊讶。我试图在文档中找到明确的答案,但是我还没有找到答案。我希望这里的人能从经验中了解或对文档有更好的运气。谢谢!
const placesService = new google.maps.places.PlacesService(myField);
placesService.getDetails(
{
fields: ['address_components'],
placeId: result.place_id,
sessionToken: token,
},
details => this.updateMethod(details.address_components),
);
答案 0 :(得分:1)
Autocomplete.setFields
,只有当用户从建议中选择一个地点时,才会将后续的“地点详细信息”请求限制到特定字段。查看示例here。
但是,对于给定的示例代码,我可以看到您直接使用Places Service来获取给定位置ID的位置的详细信息,而不是从“自动完成小部件”建议中获取。这样,您只需在getDetails(request, callback)
方法的 fields
参数中设置request
,这就是您在代码中正确完成的操作。参见此example。
希望这会有所帮助!