我有一个Cordova Android应用程序,并且提供了一个自动填写表格,用户在输入时会得到地址建议。
我正在使用Google自动完成JavaScript小部件:
var input = document.getElementById('inputfield');
var autocomplete = new google.maps.places.Autocomplete(input, { types: ['address'], fields: ["place_id"] });
autocomplete.setFields(["place_id"]);
google.maps.event.addListener(autocomplete, 'place_changed', function() {
var place = autocomplete.getPlace();
alert(JSON.stringify(place));
});
如您所见,我指定只返回place_id
信息。回调中的alert()
证明place_id
函数仅返回了getPlace()
。
因此,此小部件可以称为“自动完成(包含在“地方详情”中),因为它是自动完成,后跟一个getPlace()
请求。
在Google文档https://developers.google.com/places/web-service/usage-and-billing中,这种自动完成请求的定价应基于地方信息的常规定价:
自动完成(包含在“地方详情”中)–每会话SKU为 对包含地点详情的自动完成会话收取费用 请求。 自动完成请求是免费的,随后的地方信息 根据常规的“地方详情”定价对通话收取费用(描述了 下面)。
因此,我希望根据常规的“地方详情”定价,仅向getPlace()
请求付费。由于在我的代码中,我仅请求place_id
字段,因此我的getPlace()
请求符合ID刷新请求:
因此,最后,我希望autocomplete
请求与ID为Refresh类型的getPlace()
请求的组合是免费的。我尝试执行4个自动完成会话,但要为4个“没有地方详情的自动完成”会话付费(这是错误的(我在自动完成会话结束时调用了getPlace()
函数)。