使用谷歌地图检测附近

时间:2012-06-06 11:48:18

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

我有一个公司列表,其中包含发送声明的地址和用户(也设置了自己的位置)。

我只需要为距离用户20英里的公司发送电子邮件。我怎么能这样做?

1 个答案:

答案 0 :(得分: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