Google Places API setFields和getDetails

时间:2019-02-26 22:40:02

标签: google-places-api

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),
    );

1 个答案:

答案 0 :(得分:1)

在实现Places Autocomplete Widget时使用

Autocomplete.setFields,只有当用户从建议中选择一个地点时,才会将后续的“地点详细信息”请求限制到特定字段。查看示例here

但是,对于给定的示例代码,我可以看到您直接使用Places Service来获取给定位置ID的位置的详细信息,而不是从“自动完成小部件”建议中获取。这样,您只需在getDetails(request, callback)方法的 fields 参数中设置request,这就是您在代码中正确完成的操作。参见此example

希望这会有所帮助!