[Android+LBS] LBS based on Symfony2 & MongoDB
2023-09-27 14:23:25 时间
深入浅出Symfony2 - 结合MongoDB开发LBS应用
起因:
如果通过经纬度去获取周边信息时,就很难像传统数据库那样做查询并进行缓存。
因为这是个相似性查询的问题。
MongoDB:
- 需求
我们假设有如下功能需求:
-
- 显示我附近的人
- 由近到远排序
- 显示距离
-
方案1:基于MySQL数据库
在lat,lng这个坐标附近的目标,并且按距离正序排列,SQL中的distance单位为公里。
SQL详见原网址。
-
方案2:GeoHash索引,基于MySQL
优点:仅用一个字符串保存经纬度信息,并且精度由字符串从头到尾的长度决定,可以方便索引。
缺点:靠近每个方块边界两侧的点虽然十分接近,但所属的编码会完全不同。
-
方案3:MySQL空间存储 (MySQL Spatial Extensions)
看起来这是使用MySQL处理地理位置信息的“官方解决方案”。但恰恰很可惜的是:它却不支持某些最基本的地理位置操作,比如查询在半径范围内的所有数据。
采用欧式空间的距离,简单来说,它给出的结果是两个点在三维空间中的直线距离,不是飞机在地球上飞的那条轨迹,而是笔直穿过地球的那条直线。
-
方案4:使用MongoDB存储地理位置信息
MongoDB原生支持地理位置索引,可以直接用于位置距离计算和查询。
另外,它也是如今最流行的NoSQL数据库之一,除了能够很好地支持地理位置计算之外,还拥有诸如面向集合存储、模式自由、高性能、支持复杂查询、支持完全索引等等特性。
Symfony2
Symfony是一款基于MVC架构的PHP web开发框架。
但貌似,如果使用了Google自带的接口,是不是就可以屏蔽这些坑了呢。
Android基于LBS还有哪些值得关注的概念?
城市计算
这张图是个不错的,能启发一些市场需求的框架。
至于我们能在此基础上做点什么,还需要深入思考。
Continue...
相关文章
- Android Studio导入第三方库的三种方法
- Android Serial串口功能 接入教程
- [Android]新建项目继承Activity不继承ActionBarActivity
- Android TabActivity用法
- Android databinding之BindingAdapter与BindingConversion详解与使用(四)
- Android:Service生命周期最全面解析
- 【Java 虚拟机原理】动态字节码技术 | Dalvik & ART 虚拟机 | Android 字节码打包过程
- 【Android 事件分发】事件分发源码分析 ( ViewGroup 事件传递机制 七 )
- android用于打开各种文件的intent
- Android自定义View 自定义组合控件
- Android--UI之Spinner
- Android - Parcel & Parcelable
- React-Native 热更新尝试(Android)
- react-native 实现条码扫描(ios&android)
- Android 优化APP 构建速度的17条建议
- 我的Android进阶之旅------>如何解决Android 5.0中出现的警告: Service Intent must be explicit:
- 我的Android进阶之旅------>Android中通过adb shell input来模拟滑动、按键、点击事件
- 我的Android进阶之旅------>Android的ListView数据更新后,如何使最新的条目可以自动滚动到可视范围内?
- 我的Android进阶之旅------>Android二级ListView列表的实现
- 我的Android进阶之旅------>Android嵌入图像InsetDrawable的用法
- 我的Android进阶之旅------>Android SDK支持的配置标识符(有用的参考文件)
- 我的Android进阶之旅------>如何在多个LinearLayout中添加分隔线
- 我的Android进阶之旅------>真正在公司看几天代码的感触
- 我的Android进阶之旅------>Android中StateListDrawable支持的状态
- 我的Android进阶之旅------>启动Activity的标准Action和标准Category
- 我的Android进阶之旅------>Android拍照小例子
- Android系统移植与调试之------->MTK 标准编译命令
- Android系统移植与调试之------->如何修改Android设备添加3G上网功能
- 我的Android进阶之旅------>RGB颜色查询对照表
- 我的Android进阶之旅------>Android之Animations动画详解
- 我的Android进阶之旅------>Android发送GET和POST以及HttpClient发送POST请求给服务器响应