1

我正在构建的应用程序需要能够根据用户所在的城市/城镇将用户与事件相匹配。我对 Rails 还是比较陌生,对 Geolocation 和在应用程序中使用位置是完全陌生的。我想到了一种设计,其中用户有一个或多个城市,而事件将有一个城市,我希望通过从输入的事件地址获取它而无需专门询问用户来提取它。

主要是为了提供一些外部检查以帮助正确和一致地输入地址,但也为了显示地图,我安装了这个 jquery 地址选择器(https://github.com/sgruhier/jquery-addresspicker)。不幸的是,谷歌返回的数据不包括一个城市,而是一个与城市名称不可靠相关的“地区”或“行政区域”。回归的地方更像是我们家乡的“郊区”。我需要购买的是一个城市,这样我就可以允许用户搜索他们所在城市的所有活动,而不仅仅是他们郊区的活动。

任何人都可以就我如何去做这件事提供建议吗?非常感谢。

编辑:也许应该补充一点,我想在客户端进行地理编码,这样我就不会遇到谷歌地图限制的问题,也不必为地理编码等付费。

4

2 回答 2

0

有一些 gem 可以为您提供这些功能,并且可能还有其他与地理相关的功能,例如计算距离。

这里有两个最著名的:https ://github.com/alexreisner/geocoder和https://github.com/imajes/geokit

将来,我强烈建议您前往https://www.ruby-toolbox.com/以查看已经可以作为 gem 使用的内容,以及目前最流行的内容。

于 2012-11-17T03:23:40.793 回答
0

对于原始地址信息,请使用接受纬度/经度输入并返回街道地址组件的Google Maps API 反向地理编码。现代浏览器在用户许可的情况下支持位置感知(地理定位),并会为您提供“趋于接近”浏览器所在位置的纬度/经度。在大多数情况下,这可能会给你一个正确的城市/城镇。

maps API 是 Google 广泛的 API 工具套件的一部分——有一些 gems 可以处理任何 Google API(嗯,大部分),或者查看Google Maps for Rails,这至少会给你一个良好的开端关于如何使用 API。

但是,如果您要验证邮政编码,则此方法会很短,因为位置感知的准确性会因浏览器、设备(对于移动设备更准确)、连接、人口密度、网络覆盖等而异. 此外,调用

如果您可以获得 GPS 准确的纬度/经度,那么它会更加准确……除了在某些情况下,例如在大城市中,单个建筑物将有自己的邮政编码,因此单向或其他几英尺可能很重要.

于 2012-11-17T04:22:41.317 回答