【问题标题】:Address Search for the Google Map widget on App Maker在应用制作工具上搜索 Google 地图小部件的地址
【发布时间】:2017-12-14 16:11:05
【问题描述】:

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

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

【问题讨论】:

    标签: google-maps google-app-maker


    【解决方案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_);
    }
    

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

    【讨论】:

      【解决方案2】:

      要完成 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 方法。

      另外,我必须为自动完成工作的地址字段使用默认值。如果我没有使用默认值,Query 将返回 null。

      See here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-04
        相关资源
        最近更新 更多