我需要根据以下两个要求跟踪我的应用程序的用户纬度/经度/城市/国家/地区:
1) 自动获取用户lat/lng/city/country。 (这很简单,我可以使用 ip 或者如果他们有支持地理定位的浏览器,那就更好了)。
2) 允许用户自定义此位置(也许 ip 地址查找没有给出准确的城市)。该位置是一个自由格式的文本字段(不是下拉列表)。当用户输入一个新位置时,应该根据可用的城市/国家对其进行验证。如果它针对其中任何一个进行验证,请选择它,然后检索新位置的经纬度。 (这是我遇到的麻烦)
还要澄清一下,这是一个使用 MongoDB 的 Rails 3 应用程序。我正在寻找允许我同时执行 (1) 和 (2) 的单个 API 或数据库。有没有人做过类似的事情?寻找关于其他人如何做到这一点的一些想法。
最佳答案
关于您遇到的问题,您的问题并不完全清楚。一般来说,我会这样做:
- 有一个存储位置名称和坐标的 Location 模型
- 当用户输入一个位置时,发送一个 Ajax 请求来查找它
- 如果找到,在 session 中设置位置
- 如果未找到,则返回一个名称相似的位置列表(以防出现拼写错误)并让用户选择一个或坚持他们的输入
- 完成输入后,根据需要插入新位置并存储 User.location_id。
您可以使用 Google 的 Geocoding API查找未知位置的坐标。
关于ruby-on-rails - 城市/国家文本字段验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3125353/