谷歌地图自动完成调用,无需地点详细信息请求

She*_*rin 1 api jquery dictionary autocomplete google-maps-api-3

我在我的网站上使用谷歌地图 java 脚本自动完成

这是我的用于呈现谷歌自动完成的 java 脚本代码

 <script src="https://maps.googleapis.com/maps/api/js?key={{GOOGLE_MAP_API_KEY}}&libraries=places" type="text/javascript"></script>
<script type="text/javascript">
  function initialize() {

 var options = {
  types: ['(cities)'],
  componentRestrictions: {country: "us"}
 };

 var input = document.getElementById('city');
 var autocomplete = new google.maps.places.Autocomplete(input, options);
  autocomplete.setFields(['address_components', 'geometry', 'icon', 'name']); 
}
initialize(); 

</script>
Run Code Online (Sandbox Code Playgroud)

和html代码是

<input type="text" class="form-control" id="city" name="city" required="" value="" placeholder="City" autocomplete="off">
Run Code Online (Sandbox Code Playgroud)

在计费部分,我收取
1.Places API 自动完成没有地点详细信息
2.Places API 地点详细信息的费用

我从来没有在我网站的任何地方使用过地点详细信息请求。这个请求是如何被触发的?。
它是否在自动完成请求后自动调用?我该如何预防?
我的网站使用地理定位 api 将地址转换为经纬度坐标。它会使用地点详细信息 api 吗?

如何在不触发地点详细信息请求的情况下调用谷歌地图自动完成

She*_*rin 6

修复了问题。即使您的代码中没有 autocomplete.getPlace() 函数,每次选择或单击自动完成建议时,都会自动调用 PlaceService.GetPlaceDetails。此外,使用自动完成小部件,当用户选择预测时,小部件将为您调用地点详细信息,以便当您在 place_changed 事件上调用 autocomplete.getPlace() 时,将提供完整的地点结果。如果您不想调用 Place Details,请在初始化小部件时使用 {placeIdOnly: true}。


Yai*_*mir 6

自2019 年 1 月 15 日起,placeIdOnly已弃用,并且可以在自动完成构造函数中设置字段,此代码对我有用并阻止自动完成调用地点详细信息请求:

 autocomplete = new google.maps.places.Autocomplete(
            document.getElementById('Details_Location'), { fields: ["place_id"] });   
Run Code Online (Sandbox Code Playgroud)