使用 Rails 搜索进行地理编码

Posted

技术标签:

【中文标题】使用 Rails 搜索进行地理编码【英文标题】:Geocoding with rails search 【发布时间】:2013-01-13 23:57:49 【问题描述】:

我一直在使用 Google Maps API 进行一些基于位置的搜索(对我而言,这是一个结构性问题,而不是对地图 API 的任何批评)

例如,如果用户搜索“加拿大维多利亚”,则会按预期显示“加拿大维多利亚”的结果。但是,如果用户搜索“加拿大”,Google 会返回该国中部的经度和纬度,这对于正确居中地图至关重要。但是,它不会显示任何结果,因为最近的位置距离 google 返回的位置太远。我正在过滤掉大约 20 英里以外的结果。

Google Maps API 能否返回任何我可以用来判断用户是否输入了州或国家/地区名称的信息?如果没有,是否有人开发了解决方案?

理想情况下,我想避免仅按最近的位置对结果进行排序。当用户搜索“美国”时,我不希望“西班牙”的项目出现在列表底部。我会尝试在搜索之前确定查询是州还是国家,但鉴于国家和地区名称的可能拼写不同,这似乎是一项非常艰巨的任务。如果我只期待英文拼写,那将是一种更容易的方法。

【问题讨论】:

【参考方案1】:

假设这是一个站点上的表单,它有一个控制器解析表单并将请求发送到 Google 的 API,您可以将表单分解为地址、城市、州和国家(如果需要)表单元素,然后制作地址和城市必填字段。

我正在使用 Google Places API 构建的网站采用类似的方法,它似乎对我有用。

【讨论】:

以上是关于使用 Rails 搜索进行地理编码的主要内容,如果未能解决你的问题,请参考以下文章

“在我附近找到”的 Rails 地理编码/地理定位选项

Rails 地理编码器显示用户经纬度以用于距离

百度地图集成_POi搜索和正反地理编码

Google maps API V3 - 无法对 AutocompleteService 预测进行地理编码

对区域和提供商进行地理编码

谷歌地图 SDK 地理编码