【问题标题】:Detect nearby using google maps使用谷歌地图检测附近
【发布时间】:2012-06-06 11:48:18
【问题描述】:

我有一份公司列表,其中包含发送索赔的地址和用户(也设置了他们自己的位置)。

我只需要为用户附近 20 英里内的公司发送电子邮件。我该怎么做?

【问题讨论】:

  • 你目前使用哪种语言来实现这个功能
  • 我能够将 json 发送到客户端并使用 Javascript 或直接在服务器 - Rails 上。我想使用谷歌地图 - 不在乎端口是什么。

标签: javascript ruby-on-rails google-maps geolocation


【解决方案1】:

不确定您为什么要使用 Google 地图,因为您发送电子邮件而不是在地图上显示位置,对吧?

我认为您最好的答案是使用地理编码服务将地址转换为纬度和经度,然后将它们放入 Mongo 或其他支持地理空间索引的数据库中。

所以在地理编码后的 Mongo DB 中,您需要将每个地址转换为如下内容:

{email: 'foobar@foobar.com', address: 'address', loc : { lon : 40.739037, lat: 73.992964 } }

之后,您可以查询数据库以提取用户的电子邮件,在 Mongo 中会是这样的:

db.emails.find( { loc : { $near : [50,50] } } ).limit(20)

https://developers.google.com/maps/documentation/geocoding/

http://www.mongodb.org/display/DOCS/Geospatial+Indexing

【讨论】:

  • 不幸的是,我们使用 Postgres。它有一个扩展,但对于我们的小项目来说似乎有点过头了......
  • 你的服务器端是javascript吗?如果是这样,您可以使用:stackoverflow.com/questions/4717872/…
  • 不,但似乎已经为浏览器提出了建议......我会尝试为此找到一些面向 ruby​​ 的东西。谢谢。
  • 很好用,你用吗?我调不起来总是看到“geocoded_by”方法未定义等等..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-02
  • 1970-01-01
  • 1970-01-01
  • 2015-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多