使用 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 搜索进行地理编码的主要内容,如果未能解决你的问题,请参考以下文章