前面我们已经把五大数据类型讲完了,今天我开始讲redis特殊数据类型Geospatial,地理位置的存储,这个是数据类型可以实现朋友定位,两个地方之间的距离,搜索附近的人等。具体操作就是将指定的地理空间位置(纬度、经度、名称)添加到指定的key中,这些数据将会存储到sorted set然后使用GEORADIUS或者GEORADIUSBYMEMBER命令对数据进行半径查询计算出范围内的元素和元素之间的距离。

Geospatial数据类型只有六个命令

添加元素

Geoadd [key] [经度] [纬度] [元素]

操作这个命令之前我们需要去网上查找一些城市的经纬度坐标,因为经度和纬度是有范围限制的,如果随便添加有可能会报错,官网显示说明

· 有效的经度从-180度到180度。

· 有效的纬度从-85.05112878度到85.05112878度

所以添加的值不能超过这个范围,网上找了北京、上海、广州、深圳、杭州、南京的经纬度进行添加数据。

这里我们只是测试当然是手动添加,实际中我们可以是程序进行批量添加城市位置信息。

取值

Geopos [key] [元素]:获取指定元素的经度纬度

获取两地之间的距离

Geodist [key] [元素1] [元素2]:获取元素1和元素2之间的距离

单位:

m:表示单位米

km:表示单位千米

Redis会根据两个经纬度的值进行计算得出两个地点间的距离。

获取某个元素附近的元素

以给定元素为原点,找出半径内的所有元素,这个功能是不是可以实现我们搜索附近的人,假如我当前位置经度纬度为 110 30 现在要找出记录这个点周围1000km内的城市

GEORADIUS [key] [当前位置经度] [当前位置纬度] [查找的范围]

找查附近的城市并显示与城市的距离,在原命令上增加 withdist参数

找查附近的城市并显示附近城市的经纬度,在原命令上增加 withcoord参数

查找指定个数的附近的城市,在原命令上增加 count参数

查找某个元素周围的元素

上面是通过我自定义的经纬度经查找,还可以换一种方式,以某个存在redis中的元素,查找这个元素附件的元素。

其实redis GEO底层原理是通过zsets实现的,所以一些zset命令也都可以使用,例如

查找key中的所有元素

------------------------------------------------END-----------------------------------------------------------------

你的一个赞一个关注是我创作的动力,是我持续输出的能量源泉,老铁关注一波吧!

tp5.0 根据经纬度 获取附近信息_Redis怎么实现查找附近的人之数据类型Geospatial...相关推荐

  1. tp5.0 根据经纬度 获取附近信息_php根据前端传递的经纬度获取区域地址信息

    public function getCity() { $param = $this->request->param(); if (empty($param['lat']) &&a ...

  2. 根据百度地图经纬度获取位置信息

    /*** 根据百度地图经纬度获取位置信息 **/ public class BaiduMapUtils {// 百度地图秘钥static String ak = "此处添加你的百度地图秘钥& ...

  3. 百度api:根据经纬度获取地理位置信息

    调用百度api,根据经度和纬度获取地理位置信息,返回Json. C#代码: using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Syste ...

  4. java调用腾讯地图根据经纬度获取位置信息

    这是java提交经纬度信息,然后获取该经纬度所在省市区的一个方法,话不多说直接上代码: package com.lmj.util;import net.sf.json.JSONObject; impo ...

  5. python通过经纬度获取地址信息

    爬取社交数据时,有时候会碰到用经纬度表示地理位置信息,这种情况下需要进行转换以获取地理位置信息. 例如获取到的数据是{"business_id":"1SWheh84yJX ...

  6. 如何通过经纬度获取地址信息?

    #阅读原文 摘要 Google Maps API Web Services,是一个为您的地图应用程序提供地理数据的 Google 服务的 HTTP 接口集合.具体包括:Google Geocoding ...

  7. Spring Cloud云架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)

    上一篇我根据框架中OAuth2.0的使用总结,画了SSO单点登录之OAuth2.0 登出流程,今天我们看一下根据用户token获取yoghurt信息的流程: /** * 根据token获取用户信息 * ...

  8. 微信小程序正确的异步request请求,根据经纬度获取地理位置信息

    微信小程序的所有request请求都是异步的,不支持同步.但是在请求时可能会耗费一定时间,这样的话在获取返回数据时可能方法还没有执行完就已经进行赋值操作了.我遇到的就是拿到的数据为undefined. ...

  9. php 腾讯地图 地址逆解析 根据经纬度获取地址信息

    弄了个小程序的定位,需要获取到地址信息 前端想站着把钱挣了,所以我就需要把经纬度转成地址信息返回 原文档地址:腾讯开发文档 其实简单,就是拼接一下参数就好 这里直接放码,下次用直接复制就好 funct ...

  10. 微信小程序根据经纬度获取省市区信息

    微信小程序可以使用wx.getLocation(uni.getLocation)直接获取用户位置信息,里面含有经纬度参数. 如果需要获取详细位置,如省市区,附近街道等信息,就需要引用第三方js.可以使 ...

最新文章

  1. Udacity机器人软件工程师课程笔记(二十五) - 使用PID控制四轴飞行器 - 四轴飞行器(四旋翼)模拟器
  2. Ground Truth
  3. android onTouch()与onTouchEvent()的区别
  4. 多元经验模态分解_环境激励桥梁模态参数识别—环境激励模态参数识别概述
  5. 360笔试第一题----最强的不一定是最后的赢家
  6. SAP GUI security setting on local file access
  7. WPF RichTextBox自动调整高度
  8. 青少年迷恋上短视频 如何防沉迷?
  9. 解释下列术语堆栈型计算机,第二章 计算机指令集结构
  10. STM32——整形变量转换为字符变量并通过串口发送出去
  11. Idea集成使用SVN教程
  12. java 二叉树详解 + 实现代码
  13. 学习blus老师js(1)--基础
  14. 内农大计算机学院宿舍,新疆农业大学科学技术学院宿舍条件怎么样
  15. python调用pyd_使用python pyd时出错
  16. html树状图在线画板,五款在线思维导图工具,总有一款适合你
  17. 2016计算机2级试题,2016年计算机二级考试题及答案
  18. 斐波拉契数列python写法
  19. bootstrap 表单提交验证
  20. vue 获取当年当前季度

热门文章

  1. Linux内核线程(一)
  2. 注册(四)之删除绑定
  3. L2-010 排座位 (25 分)
  4. 淘宝商品比价定向爬虫
  5. 【排列组合、思维】Combinatorics Homework
  6. java里if为真_Excel:如果所有条件都为真,则嵌套的IF语句返回所有真值
  7. mysql ageval 1 30_通过sqoop eval传递mysql属性
  8. 鸿蒙系统首发仪式,鸿蒙系统首发终端荣耀智慧屏正式亮相
  9. 提交太多oracle,急!!请教 用文本域向数据库oracle提交不了太多文字如何解决??...
  10. python em和web_浅析Python的web.py框架中url的设定方法