0

我有一个带有地址和用户的公司列表,这些公司发送索赔(也设置了他们自己的位置)。

而且我只需要为用户附近 20 英里内的公司发送电子邮件。我怎样才能做到这一点?

4

1 回答 1

1

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

我认为您最好的答案是使用地理编码服务将地址转换为纬度和经度,然后将它们放入支持地理空间索引的 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

于 2012-06-06T14:47:39.030 回答