MongoDB开发LBS应用
随着近几年各类移动终端的迅速普及,基于地理位置的服务(LBS)和相关应用也越来越多,而支撑这些应用的最基础技术之一,就是基于地理位置信息的处理。
关于LBS的详细介绍及通用的几个解决方案,可以参考:深入浅出Symfony2 - 结合MongoDB开发LBS应用
本文主要举例说明使用Perl语言 + MongoDB实现查找附近的人的实现方案。
涉及的官方API说明文档列表:
1、2dsphere Indexes
2、GeoJSON Objects
3、$geoNear (aggregation)
实现步骤如下:
1、建立数据库表geoperson,包含位置信息字段:loc (按照GeoJSON格式组织), 数据如下:
{
"_id": "o15041420964119780063",
"name": "stephen",
"head_fid": "f15022500199301140308001",
"loc": {
"type": "Point",
"coordinates": [
119.29647,
26.07421
]
},
"type": "geoperson",
"province": "福建省"
}
2、建立2dsphere索引
my $mocl = mdb()->get_collection("geoperson")->ensure_index({loc=>"2dsphere"});
3、查找附近2.5公里的人
my $rad = 2500; # 查找范围 2.5公里
my $max_size = 20; # 最多返回20条匹配数据
my $longitude = 119.31647; # 中心点坐标(经纬度)
my $latitude = 26.17421;
my $mocl = mdb()->get_collection("geoperson")->aggregate([
{
'$geoNear'=>{
'near'=> { type=>"Point", coordinates=>[$longitude, $latitude] }, # 也要采取GeoJSON格式
#'num'=> $max_size,#The default value is 100
'spherical'=>1, #Required if using a 2dsphere index.
# Specify the distance in meters if the specified point is GeoJSON
'maxDistance'=>$rad, # 单位是米
# The output field that contains the calculated distance.
'distanceField'=>"distance",
}
},
{ '$match'=> { "name"=> "lily" } } # 进一步过滤条件
{ '$sort'=> { "ut"=> -1 } } # 排序
]);
MongoDB原生支持地理位置索引,且高性能、支持复杂查询。
是不是很简单呀。
MongoDB开发LBS应用相关推荐
- 结合MongoDB开发LBS应用(转)
原文链接:结合MongoDB开发LBS应用 简介 随着近几年各类移动终端的迅速普及,基于地理位置的服务(LBS)和相关应用也越来越多,而支撑这些应用的最基础技术之一,就是基于地理位置信息的处理.我所在 ...
- 12.Laravel5学习笔记:使用mongodb开发LBS应用
做LBS应用有多种方案,这里介绍一下在Laravel5中使用Mongodb来实现,文章参考了: 深入浅出Symfony2 - 结合MongoDB开发LBS应用 环境说明: php集成环境:xampp ...
- 结合MongoDB开发LBS应用
http://www.cnblogs.com/jifeng/p/4356052.html 然后列举一下需求: 1.实时性要高,有频繁的更新和读取 2.可按距离排序支持分页 3.支持多条件筛选(一个经纬 ...
- 结合MongoDB开发LBS应用(mongodb geo)
简介 随着近几年各类移动终端的迅速普及,基于地理位置的服务(LBS)和相关应用也越来越多,而支撑这些应用的最基础技术之一,就是基于地理位置信息的处理.我所在的项目也正从事相关系统的开发,我们使用的是S ...
- 利用mongodb开发lbs应用实践【转】
近期作为突击队员,与同事一起突击构建了一个简单的lbs系统.当前比较主流的做法是使用mongodb,因为其已经封装了常用的lbs基本操作(如查找附近的人),功能非常强大,对于开发周期只有一周的项目,m ...
- 利用mongodb开发lbs应用实践
转载:http://www.tuicool.com/articles/feueEnz 近期作为突击队员,与同事一起突击构建了一个简单的lbs系统.当前比较主流的做法是使用mongodb,因为其已经封装 ...
- 结合MongoDB开发LBS应用——附近的人
"The palest ink is better than the best memory"--好记性不如烂笔头.2013~2015补记 题记: 2014.7月业务数据增长,附近 ...
- MongoDB开发使用手册
一.基础部分 MongDB简介 NOSQL历史和产生原因 原因: 互联网用户数的增长和用户参与互联网习惯的改变 初始的静态内容网站,提供中心化的内容服务, 特点: 中心化,用户阅读内容 系统:Apac ...
- 6.3 Spring Boot集成mongodb开发
6.3 Spring Boot集成mongodb开发 本章我们通过SpringBoot集成mongodb,Java,Kotlin开发一个极简社区文章博客系统. 0 mongodb简介 Mongo 的主 ...
最新文章
- 用c语言大一个三角形图形,c语言图形,请高手修改,效果是一个三角形绕一点旋转一周...
- red hat安装宝塔_只需几分钟即可安装Red Hat Container Development Kit(视频)
- vs 设置起始页不见了_发朋友圈屏蔽爸妈,结果不小心设置成了仅家人可见...场面一发不可收拾哈哈哈哈!...
- 第二节:ES7 新增的 includes 特性
- 华为回应“发射卫星抢占6G”:假消息
- oracle 12c transaction guard,oracle 12c的Data guard中废弃
- iptables调试的小窍门 之前没想到啊 从抚琴煮酒那看的
- C++ map的基本和高级操作
- 数据分析数据可视化(三)
- reactNative+typescript-三,底部导航器
- python科学计算常用包-python常用包及功能介绍
- 深入浅出SCSI子系统(五)SCSI设备探测
- 空间数据平台SDP - 医疗药品门店数字化营销
- 用计算机做初中模拟物理实验,仿真物理实验室初中完整版
- VS2015社区版使用Visual Studio Installer打包
- 阿里字体库的运用(网站上面的购物车或者一些小图标 箭头)
- 写文章没高质量配图?python爬虫绕过限制一键搜索下载图虫创意图片!
- 【JVM】字节码与ASM字节码增强、Instrument实现类的动态重加载
- 宝华计算机维修,唐山市路北区宝华计算机维修服务
- 使用.net(C#)发送邮件学习手册(带成功案例)
热门文章
- 诗配画—泰戈尔情诗欣赏(转载)
- 举例理解Hibernate的三种状态:瞬时态、持久态、托管(即游离态)态及互相转化
- 对于ISP的http会话劫持,各位看看这个文章,更换DNS纯属蛋疼
- tomcat双击startup.bat黑窗口一闪而过
- phpinfo.php在哪里,phpinfo_phpinfo获取php服务器配置信息
- 贫富差距源于理财意识
- webrtc中的ulp fec实现分析
- css flex布局 —— 项目属性 flex-grow
- 迅为iTOP-RK3568开发板支持SATA/PCIE/USB3.0/集成双核GPU/独立NPU
- C语言编写字符串拷贝(strcpy)函数详解以及assert函数