【问题标题】:Restrict google maps/use strictBounds to autocomplete by region限制谷歌地图/使用strictBounds按地区自动完成
【发布时间】:2019-08-25 18:54:02
【问题描述】:

我正在使用 Google 地图自动完成功能并试图将我的结果限制在巴尔干地区。由于 Google 地图目前可以选择将自动完成功能限制在 5 个国家/地区,因此这对我来说不是一个选择 - 试图找到一种解决方法。 我找到了适用于欧盟的解决方案,但不知道如何为巴尔干地区设置它。

function initialize() {
  var options = {
    region:'EU',
    types: ['(cities)']
   };
  new google.maps.places.Autocomplete(document.getElementById('autocomplete'), options);
}

想知道是否可以选择 strictBounds?

【问题讨论】:

  • 嗨 Elektra,您能否将代码添加为文本并将其格式化为代码?图片并没有真正的帮助。
  • 请将代码、错误和数据添加为文本 (using code formatting),而不是图像。图片:A)不允许我们复制粘贴代码/错误/数据进行测试; B) 不允许根据代码/错误/数据内容进行搜索;和many more reasons。通常,文本格式的代码/错误/数据 »» 代码/错误/数据作为图像 » 没有。除了代码格式的文本之外,只有在图像添加了一些重要的东西,而不仅仅是文本代码/错误/数据传达的内容时,才应该使用图像。
  • 对不起,我是新手 :)
  • strictBounds:一个布尔值,指示自动完成小部件应仅返回发送查询时自动完成小部件范围内的那些位置。将 strictBounds 设置为 false(这是默认值)将使结果偏向但不限于包含在边界内的位置。 但是 LatLngBounds 对象是一个矩形。因此,您可能无法仅限于您所追求的确切区域。
  • 使用以下方法后,我已经能够实现接近我的目标:defaultBounds = new google.maps.LatLngBounds( new google.maps.LatLng(34.658666, 15.418504), new google.maps.LatLng(46.734827, 29.116564) ); options = { bounds: defaultBounds, types: ['(cities)'], strictBounds: true

标签: google-maps google-maps-api-3 autocomplete limit restrict


【解决方案1】:

对于一年多后提出这个问题的任何人。您需要使用 bounds 选项来限制一个区域。

这是我限制在欧洲上空的矩形区域的代码。

var defaultBounds = new google.maps.LatLngBounds(
    new google.maps.LatLng(35.929631, -25.022766),
    new google.maps.LatLng(71.344983, 49.860046)
);

autocomplete = new google.maps.places.Autocomplete(
    document.getElementById("element-id"),
    {
        bounds: defaultBounds,
        strictBounds: true,
        types: ['(regions)']
    }
);

你可以使用这个工具来获得你自己的矩形区域 http://www.birdtheme.org/useful/v3tool.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 2017-08-07
    • 2016-11-17
    • 2018-01-26
    相关资源
    最近更新 更多