高效搭建LBS与SNS结合的应用

前言

本文追述LBS的前世今生,透视LBS拥有的优秀基因和继承的缺陷,从技术架构的视角对流行的LBS+SNS系统进行剖析。 – 作者:李祎

LBS基于位置的服务(Location Based Services)一直是移动开发的热门领域,各种基于LBS的移动应用层出不穷。作为应用开发者如何不雾里看花,找到最好的切入点进行技术选型和设计应用? 本文追诉LBS的前世今生,透视LBS拥有的优秀基因和继承的缺陷,从技术架构的视角对流行的LBS与SNS结合的应用进行剖析, 为打算在LBS领域创业和创新的开发者提供一些技术参考。

前世 – 源自GIS

就像认识一个人首先要了解他的家庭背景,我们先介绍一下LBS的父亲GIS 地理信息系统(Geographic Information System) 。 GIS发展于60年代,它的技术架构和传统的Client/Server信息系统没有太多区别。PC端应用程序通过网络连接后台数据库,查询和处理地理参照数据(例如大气层和地表等空间要素的位置和属性)。从技术角度来说构建一个地理信息系统,需要解决三个问题。数据如何保持,如何分析,以及怎么展现给用户。 GIS有多种展现形式,例如PC客户端,web网站(见图1),本文就不深入讨论,我们重点来研究数据如何保存,如何分析这两个问题。

map
图(1)

GIS将通过全球定位系统GPS(Global Positioning System)得到的数据,保存到空间数据库。空间数据库有别于传统的关系数据库,它补充了大量几何空间相关的功能。 主要解决存储空间中的对象数据(例如点,线和多边型);并对空间数据的特殊需求进行空间索引, 用最优的CPU和IO效率进行空间数据对象相关的查询。

空间分析是空间数据库的基础功能,它从空间物体的空间位置、联系等方面去对空间中的对象数据进行计算和空间检索。例如某个视图范围内的矩形检索,周边检索,同城搜索等空间分析功能。目前常见的商业关系数据库都有基于GIS的扩展,例如ORACLE 的spacial database ,MS SQL的空间扩展,PostgreSQL针对空间数据库的扩展 PostGIS 。常见的开源数据库 MongoDB和Mysql也支持空间数据类型的存储,但是对空间数据对象相关的检索和查询支持得非常少。

今生 – LBS+SNS

现在如火如荼的社会化网络SNS大潮,改写着互联网的格局,也冲击着LBS应用领域。特别是智能手机应用的喷井式爆发,吸引更多的掘金者把目光聚焦到LBS和SNS结合这个领域来。例如在 2012年12月,高德与新浪微博宣布战略合作,用户在使用高德地图时就可以看到自己微博足迹的文字和图片信息。

那么要如何选择技术架构搭建LBS与SNS结合的应用,来解决位置信息的存储和分析这个两个核心问题?比较现实的选择是如图2A,用PostGIS作为POI兴趣点(Point of Interest)数据的存储和查询解决方案,用Mysql + Memcache支持SNS用户数据的存储和查询,通过用户ID和POI ID把LBS和SNS这两个看似独立的系统进行数据关联起来。例如世纪佳缘,陌陌(图2B),图钉等的用户定位,还有瓜子社区根据用户位置展现周边社区消息,都适合这种架构。 通过搜索查询空间数据库来找到附近的POI信息,然后从POI中关联的用户ID信息到SNS系统中去查询用户信息, 通过接口调用交给手机端显示。
mm
图(2)A 图(2) B

下面用示例来展现如何实现“查询手机用户当前1公里范围内的陌生人”这个典型LBS与SNS结合的功能。 在PostGIS数据库中 创建表 </

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值