地址在App Maker上搜索Google Map小部件

时间:2017-12-14 16:11:05

标签: google-maps google-app-maker

我看到App Maker的Google Map小部件文档说我可以绑定datasource,以便用户可以输入地址来更新地图。 是否可以将其绑定到App Maker中的Places search box

如果我不需要创建自己的数据源来启用地址搜索,那就太棒了。

2 个答案:

答案 0 :(得分:1)

您可以使用Suggest BoxCalculated DatasourceGeocoder 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_);
}

Datasource

还有一个重要重要的事情:您需要说出Suggest Box来处理您的数据源作为整个记录,否则它将过滤掉与您的_startsWith术语不完全匹配的所有结果: Record as value

答案 1 :(得分:0)

要完成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)。您可以使用具有默认配额限额的Maps方法。

此外,我必须为自动完成的“地址”字段使用默认值。如果我未使用默认值,则查询将返回null。

See here