javascript - Google map API 不使用区域提示

标签 javascript google-maps-api-3

我在告诉 Google map 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
                    }
                }));
            })
        }
    });
});

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

问题是 Google 返回的地址不限于(也不暗示)意大利

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

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

我做错了什么?

顺便说一句,是否可以将搜索限制为仅搜索城市,而不搜索完整地址?

提前致谢。

最佳答案

听起来您确实应该使用 Google Places Autocomplete API standalonebuilt in到 Google map API。

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

无法将结果仅限于城市。

关于javascript - Google map API 不使用区域提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4683009/

相关文章:

javascript - 禁用/忽略用于转译 javascript 文件的 Babel 严格模式

javascript - AOL 网站上的 dojo.charting 库在哪里?

javascript - jQuery :not() Selector iOS5 compatible?

javascript - 在从不同域加载页面的 iframe 中访问 "pre"标记

jquery - 在 Bootstrap 模式中显示一张谷歌地图一页

android - 如何为 google map api v2 设置默认位置和缩放级别?

javascript - 谷歌时间线图表(带数字),开始时间

javascript - 实时更新 Google map 标记,无需刷新整个 map

javascript - Google map - 让信息窗口显示?

javascript - 谷歌地图 fitBounds 不适用于 ajax 功能 - 似乎只适用于一个标记