在 App Maker 上搜索 Google 地图小部件的地址
Address Search for the Google Map widget on App Maker
我看到 App Maker 的 Google 地图小部件文档说我可以将 datasource 绑定到它,以便用户可以输入地址来更新地图。
是否可以将其绑定到 App Maker 中的 Places search box 之类的东西?
如果我不需要创建自己的数据源来启用地址搜索,那就太好了。
您可以使用 Suggest Box, Calculated Datasource and Geocoder Apps Script service
构建地址搜索
/**
* Creates address suggestion record.
* @param {Object} geocode Geocode object received from Maps Geocoder.
* @return {AddressSuggestion} Created suggestion record.
*/
function createAddressSuggestion_(geocode) {
var record = app.models.AddressSuggestion.newRecord();
record.Address = geocode.formatted_address;
return record;
}
/**
* Gets address suggestions Maps Geocoder.
* @param {string} term Start of address string to search for.
* @return {Array<AddressSuggestion>} Array of suggestion records.
*/
function getAddressSuggestions_(term) {
// TODO: Uncomment to set clientId and Google Maps API Key
// Maps.setAuthentication('your_client_id', 'your_signing_key');
var response = Maps.newGeocoder().geocode(term);
var geocodes = response.results;
return geocodes.map(createAddressSuggestion_);
}
还有一个重要重要的事情:你需要说建议框来处理你的数据源作为整个记录,否则它会过滤掉所有与你的[=不完全匹配的结果11=] 术语:
要完成 Pavel Shkleinik 的回答,
我们不需要使用 Maps.setAuthentication('your_client_id', 'your_signing_key');
进行身份验证
看这里:https://developers.google.com/apps-script/reference/maps/maps#setAuthentication(String,String)
此方法不适用于 API 键。此外,请注意高级计划不再适用于新客户。如果您还没有高级计划许可证,请不要调用 setAuthentication(clientId, signingKey)。您可以使用带有默认配额的地图方法。
此外,我必须使用地址字段的默认值 auto-complete 才能工作。如果我不使用默认值,查询将 return 为 null。
See here
我看到 App Maker 的 Google 地图小部件文档说我可以将 datasource 绑定到它,以便用户可以输入地址来更新地图。 是否可以将其绑定到 App Maker 中的 Places search box 之类的东西?
如果我不需要创建自己的数据源来启用地址搜索,那就太好了。
您可以使用 Suggest Box, Calculated Datasource and Geocoder Apps Script service
构建地址搜索/**
* Creates address suggestion record.
* @param {Object} geocode Geocode object received from Maps Geocoder.
* @return {AddressSuggestion} Created suggestion record.
*/
function createAddressSuggestion_(geocode) {
var record = app.models.AddressSuggestion.newRecord();
record.Address = geocode.formatted_address;
return record;
}
/**
* Gets address suggestions Maps Geocoder.
* @param {string} term Start of address string to search for.
* @return {Array<AddressSuggestion>} Array of suggestion records.
*/
function getAddressSuggestions_(term) {
// TODO: Uncomment to set clientId and Google Maps API Key
// Maps.setAuthentication('your_client_id', 'your_signing_key');
var response = Maps.newGeocoder().geocode(term);
var geocodes = response.results;
return geocodes.map(createAddressSuggestion_);
}
还有一个重要重要的事情:你需要说建议框来处理你的数据源作为整个记录,否则它会过滤掉所有与你的[=不完全匹配的结果11=] 术语:
要完成 Pavel Shkleinik 的回答,
我们不需要使用 Maps.setAuthentication('your_client_id', 'your_signing_key');
进行身份验证看这里:https://developers.google.com/apps-script/reference/maps/maps#setAuthentication(String,String) 此方法不适用于 API 键。此外,请注意高级计划不再适用于新客户。如果您还没有高级计划许可证,请不要调用 setAuthentication(clientId, signingKey)。您可以使用带有默认配额的地图方法。
此外,我必须使用地址字段的默认值 auto-complete 才能工作。如果我不使用默认值,查询将 return 为 null。
See here