【问题标题】:Google Maps Autocomplete: how to be more restrictive than country?谷歌地图自动完成:如何比国家更严格?
【发布时间】:2012-06-12 02:50:34
【问题描述】:

有没有办法让谷歌地图的自动完成功能将结果限制在一个州内?好像只能按国家限制:https://developers.google.com/maps/documentation/javascript/reference#ComponentRestrictions

如果 Google 的自动完成功能无法做到这一点,是否有 jQuery 插件可以为我做到这一点?我需要一个好的自动完成插件,它有望返回整个地图 API 响应(或至少 lat/lng 值)。

【问题讨论】:

  • 您是否解决了问题中描述的原始问题?感觉就像我们把它挂了,我想确保你很好。您是否决定继续使用自动完成功能?
  • 嗨,肖恩,我仍然需要测试解决方案。还没来得及。我的感觉是,设定界限可能对我有用。将及时向大家发布。谢谢!

标签: jquery jquery-plugins google-maps-api-3


【解决方案1】:

在构造Autocomplete 时,您可以选择设置bounds 而不是使用Component Restrictions。它在Autocomplete section of the Developer's Guide 中描述,编码规范在AutocompleteOptions entry in the API Doc 中定义。您也可以在创建 Autocomplete 后更改边界,方法是调用:autocomplete.setBounds(bounds)

bounds 不能保证将结果限制在范围内,但将bounds 设置为覆盖州或城市的区域将非常接近于实现您所描述的结果。

如果您需要更进一步,您还可以选择从 Autocomplete 切换到使用 Places Librarydev-guide,这还允许您定义 rankBy 可选属性。如果您使用google.maps.places.RankBy.DISTANCE 定义rankBy,您将获得额外的控制,以限制返回到特定地理区域的结果。这些是目前在 Google 地图上可用的最佳选项。

【讨论】:

  • 似乎不必要的复杂。任何可能适合我的非 Google 解决方案?
  • 它可能感觉很复杂,但是当您考虑它在浏览器中为您提供的强大选项时,它会成为赢家。我不知道有什么东西可以在预构建的小部件中为您提供您想要的东西。我已经查看了地图和相关工具的其他选项,但我的大部分实践都是使用谷歌地图,所以它可能就在那里。 jQuery 插件提供了一些很酷的工具,但它们都在 Google CDN 上运行,因此它们必须(显然)在相同的服务范围内运行。我会密切关注这个问题;看看别人怎么说——
  • 我是地图新手,请多多包涵。由于我试图让自动完成功能给我任何地址,我必须使用geocode 类型,对吗?你的最后一个建议意味着我应该使用类型places,这不是我想要的,对吗?
  • 没有汗水;我很乐意提供帮助。是的,如果您想将结果限制为地址,请使用typegeocode。如果我在前面的段落中描述的内容听起来不符合您的需求,我会提供最后一个建议。这将意味着放弃Autocomplete 并使用Places Library,这需要卷起袖子并更深入。如果您觉得我在答案的早期部分中描述的内容会起作用,我建议使用该选项;它更简单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-23
相关资源
最近更新 更多