【问题标题】:Google maps API is not using region hint [duplicate]Google 地图 API 未使用区域提示 [重复]
【发布时间】:2011-06-08 15:42:34
【问题描述】:

我在告诉 Google 地图 API 将地理编码服务的结果限制在特定区域时遇到问题。

重现问题的简单示例在这里:http://jsfiddle.net/pqZGr/

JavaScript 代码非常简单:

$(document).ready(function () {
    var geocoder = new google.maps.Geocoder();
    $("#name").autocomplete({
        source: function (request, response) {
            geocoder.geocode({ 'address': request.term, 'region': 'it' }, function (results, status) {
                response($.map(results, function (item) {
                    return {
                        value: item.formatted_address
                    }
                }));
            })
        }
    });
});

除了请求中的'region': 'it' 之外,我还将API URL 指定为http://maps.google.com/maps/api/js?region=it&language=it&sensor=false

问题是谷歌返回的地址没有限制(也没有暗示)到意大利

例如,如果您搜索 milMilano 的开头),我会得到 Circondario di Miltenberg, GermaniaMilion, Alemdar Mh., 34122 Istanbul/Provincia di Istanbul, Turchiareka Mil', Sacha-Jacuzia, Russia

它返回了来自世界各地的结果(也只有三个?),而来自意大利的则一无所有(即使有多个城市匹配 mil)。

我做错了什么?

作为旁注,是否可以将搜索限制在城市而不是完整地址?

提前致谢。

【问题讨论】:

    标签: javascript google-maps-api-3


    【解决方案1】:

    听起来您确实应该将 Google Places Autocomplete API standalonebuilt in 用于 Google Maps API。

    地理编码服务不是为自动完成查询而设计的,不会返回您正在寻找的那种结果。 region 参数是您所说的提示,但这不是限制,因此如果意大利没有合适的“mil”,或者其他地方有更好的匹配,您将获得这些结果。

    无法将结果仅限于城市。

    【讨论】:

      【解决方案2】:

      如果您使用带有 jQ​​uery UI 的 Google 地理编码器自动完成功能,您可以编辑 ui.geo_autocomplete.js 中的一行,第 46 行,并添加您的区域。它不是 100% 精确,但会减少找到的地址数量:

      this.options._geocoder.geocode({'address': _address}, function(_results, _status)
      

      替换为:

      this.options._geocoder.geocode({'address': _address + ' YOUR_REGION_HERE'}, function(_results, _status) 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-09
        • 2011-04-14
        • 2011-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多