此文,主要简单讲述,如何利用MongoDB数据库本身,来实现指定地图坐标点获取离此坐标最近的,数据库中已记录存在的坐标点。
通过MongoDB实现此功能的关键是,需要创建索引:
当你完成了相关应用数据坐标点的采集存储,例如,
db.vehicle.insert({coordinate:{longitude:116.40244,latitude:39.963175},phoneno:"185****3571",description:"Some goods here!!",address:"ShangDi”})
之后,你需要执行对整体数据进行索引化,执行,
db.vehicle.ensureIndex({'coordinate':'2dsphere'})
至此,你可以利用MongoDB查找指定范围的坐标点了, 例如,运行,
db.runCommand({geoNear:"vehicle", near:[116, 39], spherical:true, num:10})
查找数据库中,离坐标点[116, 39]最近范围的10个坐标位置。
这只是此类问题众多实现方式的一种,此种应用实现的优缺点就无需赘述了,根据具体情况如何实现功能,是需要每个应用实现者自己去抉择的。