近几十年来,LBS(Location Based Services)技术的发展为地理跟踪和位置管理提供了实际支持。随着相关技术的进步和不断的改进,LBS在行业的利用范围也愈来愈广泛,特别在我们的平常生活中使用得更加广泛。 MongoDB就是基于LBS引擎技术发展而成,初期仅仅利用在定位、测距、绘制热力图等有关地理信息处理领域。帮助用户轻松管理和使用大量地理详细信息,以计算任何距离和范围,使用户能够从多个层面分析地理信息、获得有价值的对象或进程。
MongoDB将基于位置信息的数据存储在GeoJSON格式中,将含有地理标记的元素分配到有空间维度的数据存储结构中,索引查找地理数据。从MongoDB启动数据库和创建数据表和插入数据开始,位置数据就能够被存储到一个集合中,例如,假定我们要存储每一个省分的地理位置信息,那末我们在数据库中创建一个集合,将geoJson类型的文档插入到该集合,示例代码以下:
db.province.insert({
"_id": "001", "province": "Guangdong",
"center": { "type": "Point",
"coordinates": [113.1456, 23.0742] }
});
随后我们可使用MongoDB的内置函数,如near()函数,可以在查询中查找符合特定条件的附近地理特点,也能够使用maxDistance参数以指定搜索的距离范围。MongoDB的$geoWithin操作符也能够用于查找在一个指定的地理位置范围内的元素,例如查找在某个地点50Km内的地理元素,可使用以下代码:
db.points.find({
location: { $geoWithin: {
$centerSphere: [ [113.1456, 23.0742],
50 / 6378.1 ]
} }
});
MongoDB还有一个叫做$geoNear的操作符,用于依照两点之间的距离来查询数据,可以基于用户的位置和/或其他地理位置字段索引来查询相距最近的地理元素,例如:
db.points.find({
$near: { $geometry: {
type : "Point", coordinates : [103.1456, 23.0742]
}, $maxDistance: 5000
}});
总之,MongoDB使用LBS技术实现了地理信息处理,可以轻松地存储大量地理信息数据,实现快速搜索和查询,为区别利用程序提供实时定位服务和有价值的位置分析功能,极大地提高了定位服务的活性和准确性。
本文来源:https://www.yuntue.com/post/196615.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏