添加地理位置到Redis

本篇文章就来扯一下犊子。。。不,来扯一下基于Redis Geo地理空间的实现。

言归正传,Redis Geo是怎么实现地理空间存储的?记得毛爷爷说过:实践是检验真理的唯一标准。

作为程序员没有点敲代码的能力怎么能行?

虽说在座的各位都是面向Ctrl+c,Ctrl+v编程,先使用一条简单的命令来引出今天的话题吧!

以上命令是在Redis命令行模式下执行,加入北上广深的经纬度以供我们后续的测试。那么在redis内部存储的类型是什么呢?为什么Geo相关命令没有删除元素的命令呢?

下图展示了在Redis中存储的数据和类型。

竟然是有序集合Zset,那么需要删除某个元素只需要调用Zset相关的命令即可。

以上说了一个最基本的命令,就是在有序集合中添加了北上广深的地理位置信息,这是什么原理?不要问我,反正我也不知道。

计算两点间的距离

以下命令分别计算广州-上海、深圳-广州,深圳-北京的距离以km为单位。

场景:某陌,你与陌生小姐姐的距离。实际情况可能会复杂点。

计算指定地位位置、指定范围内的集合

以下命令返回经度113度,纬度23度范围200km内的集合。WITHCOORD-指定该参数将返回与中心的距离,如广州到中心点的距离为30.6255km。WITHDIST-指定该参数将返回地址位置坐标,可以使用ASC或者DESC返回距离中心的距离排序。

场景:点外卖,你附近有多少商家等着你。咦,不是某陌吗?

获取地理位置信息

好理解,把Zset中的数字还原为经纬度,方便在地图中展示。如获取深圳、广州的经纬度,可获取单个点和多个点。场景:某陌,小姐姐在地图上的哪个点。

获取一个或多个位置元素的标准GeoHash

这也验证了开篇说的,共享前缀越长距离越近的说法,以上时深圳-北京,深圳-广州的结果。这个用处好像没那么大,可以供持久化到数据库等。

获取指定成员、指定范围内的集合

和georadius命令类似,这个命令的中心点是元素成员为中心的,以上命令展示了以深圳和北京为中心距离200km内的城市。场景:某陌,我附近的小姐姐有多少个。

后话

当然,使用Redis来作为业务解决方案或许还要根据实际需求来,这里只是一个引子,还是可以满足一些小项目的。

下期讲下基于Mysql的解决方案。有帮助,记得点赞!!点关注,不迷路!!!

经纬度两点距离计算器_基于位置的服务之Redis Geo地理空间距离计算相关推荐

  1. 经纬度两点距离计算器_怎么确定最佳观影距离?内含懒人计算器

    影响家庭影院视觉效果的因素有两点:有效视角和心理因素,那么如何确定投影画面比例和最佳投影距离呢,下面给大家讲解一番,本文共1849字,阅读本文预计3-4分钟. 懒人可直接长按下方二维码识别,进入观影距 ...

  2. 地理空间距离计算及优化(根据两个点经纬度计算距离)

    1.地理空间距离计算面临的挑战 打开美团app,不管是筛选团购还是筛选商家,默认的排序项都是"离我最近"或者"智能排序"(如下图所示). 不管是"离我 ...

  3. LBS 基于位置的服务

    LBS隐私保护的一些看法 2016年12月07日 13:50:25 阅读数:2214 标签: 物联网隐私lbs 更多 个人分类: 分布式虚拟化 版权声明:本文为博主原创文章,转载请注明出处,查看原文章 ...

  4. 基于位置的服务器,用于基于位置的服务的移动台-服务器协议

    具体实施方式 以下将结合示例性无线通信系统和相关联的基于位置的服务来示出本发明.然而,应当理解,本发明不限于与任何特定类型的无线系统或者基于位置的服务结合使用.公开的技术适于与各种其他系统结合使用,并 ...

  5. 基于位置的服务(简介)

    基于位置的服务(Location Based Services,LBS) 一. 基于位置的服务(Location Based Services,LBS)是指采用无线定位.GIS.Internet.无线 ...

  6. Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK

    原文:Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...

  7. 第一行代码十一章:(基于位置的服务) 3C-58-C2-5D-F8-FE

    基于位置的服务 1.申请API 2.使用百度定位 3.在手机上出现自己的位置 1.申请API 在做位置服务时需要申请属于自己的API,所以必须要先成为一个百度开发者,注册的网址如下:hppt//:de ...

  8. 地理空间距离计算优化_附近的人(转自美团技术博客)

    1 地理空间距离计算面临的挑战 打开美团app,不管是筛选团购还是筛选商家,默认的排序项都是"离我最近"或者"智能排序"(如下图所示). 手机app示意 不管是 ...

  9. html5经纬度定位 源码_基于浏览器的HTML5地理定位

    地理位置(Geolocation)是 HTML5 的重要特性之一,提供了确定用户位置的功能,借助这个特性能够开发基于位置信息的应用.今天这篇文章向大家介绍一下 HTML5 地理位置定位的基本原理和一个 ...

  10. caputo分数阶导数程序_基于Caputo导数的分数阶非线性振动系统响应计算

    基于 Caputo 导数的分数阶非线性振动系统响应计算 李亚杰 1,2 , 吴志强 *1,2 , 章国齐 1,2 [摘 要] 摘 要 : 研究了含分数阶 Caputo 导数的非线性振动系统响应的数值计 ...

最新文章

  1. tensorflow lstm 实现 RNN / LSTM 的关键几个步骤 多层通俗易懂
  2. highcharts总结
  3. SAP和ABAP内存的区别
  4. (搬家文) c++引用深入探讨
  5. group by 的实现原理
  6. 动态规划编程面试_面试的前25大动态编程问题
  7. 国内计算机专业最好的大学有哪些
  8. 会javascript,你才是前端工程师!
  9. RRRR_wys' Blog 3.0 准备上线啦!
  10. php短视频源码,流式布局(代码)
  11. 深入解析CAS算法原理
  12. 软件中存在的技术风险
  13. matlab求基音频率,语音中提取基音频率matlab程序.doc
  14. (转)如何成为一名优秀的程序员?
  15. 百度人脸对比,人脸认证Demo
  16. 初入测试如何编写测试用例?从3个方面带你写一个合格的测试用例
  17. 传奇人物赫伯特·西蒙的原则
  18. 时代周刊对比海地与汶川地震 称赞中国重建能力
  19. 安捷伦示波器连接电脑
  20. fork后父子进程共享资源

热门文章

  1. 算法笔记_面试题_8.零钱兑换
  2. 斯坦福大学深度学习公开课cs231n学习笔记(6)神经网路输入数据预处理(归一化,PCA等)及参数初始化
  3. 3D点云分割算法汇总
  4. fixed不以body定位,相对于父级容器定位问题
  5. 单表查询 多表查询 子查询
  6. 《构建之法》阅读笔记
  7. Jquery easyUI datagrid载入复杂JSON数据方法
  8. Process Kill Technology Process Protection Against In Linux
  9. YCrCb444转换成YCrCb422随笔
  10. XP远程桌面连接网络无法验证解决办法