高级数据类型-Geo|学习笔记

简介: 快速学习高级数据类型-Geo

开发者学堂课程【Redis 入门到精通(进阶篇):高级数据类型-Geo】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/765/detail/13446


高级数据类型-Geo

 

本章主要说明 Geo 以及它的操作方法与流程

 

,Geo 的说明及操作

1.举例与 Geo 相关的一些火热的生活服务类软件

社交类微信/陌陌

外卖类美团/饿了么

移动类携程/马蜂窝

导航类高德/百度

等只要和线下相关是都可以涉及到的Geo叫做地理位置。换句话说,就是告诉一个地理位置,再告诉另外一个地理位置,就可以做一些操作计算

2.GEO 类型的基本操作

(1).添加坐标点

geoadd key longitude latitude member [longitude latitude member ...]

(2).获取坐标点

geopos key member [member .--]

(3).计算坐标点距离

geodist key memberl member2 [unit]

具体来说明以上操作假定一个地图,有一个点,这边有一个点,就可以求他们两个之间的关系,比如说距离,范围等等的一系列的东西。这需要知道两个信息第一是横坐标第二是纵坐标。简单一点,叫做经纬度。通过这种形式,可以快速的去做我们的点与点之间的这种关联关系操作,就是所谓的记忆人物。它的应用场景也是非常的单一,具体的操作。要想能够进行计算,最基本的,能把数据给放进去,二数据能取出来,三能做最基本的计算,比如关于两个点的坐标,如果是一个非常光滑的球体的话,这个坐标计算是准的,但是如果说现在在山下到山上,这个有距离没有是有距离的,他只算水平位置的距离,不算垂直位置,换句话说不算高度,所以计算出来的距离。只能按照水平位置去想,不能说从这个点到那个点才算走好长时间

以下为操作过程中运用到的代码

127.0.0.1:6379>flushdb

OK

127.0.0.1:6379> geoadd geos 1 1 a(integer)1

127.0.0.1:6379> geoadd geos 2 2 b

(integer)1

127.0.0.1:6379> geopos geos1)1)"0.99999994039535522"

2)"0.99999945914297683"

127.0.0.1:6379> geodist geos a b"157270.0561"

127.0.0.1:6379> geodist geos a b m*157270.0561"

127.0.0.1:6379> geodist geos a b km

"157.2701"

127.0.0.1:6379>

(5).根据坐标求范围内的数据

georadius key longitude latitude radius mlkmlftlmi [withcoord] [withdist] [withhash] [count count]

(6).根据点求范围内数据

georadiusbymember key member radius ml kml ft| mi [withcoord] [withdist] [withhash] [count count]

(7).获取指定点对应的坐标 hash 

geohash key member [member ...]

以下为操作流程中所运用到的代码

127.0.0.1:6379>flushdb

OK

127.0.0.1:6379> geoadd geos 1 1 1,1

(integer)1

127.0.0.1:6379> geoadd geos 1 2 1,2

(integer)1

127.0.0.1:6379> geoadd geos 1 3 1,3

(integer)1

127.0.0.1:6379> geoadd geos 2 1 2.1

(integer)1

1270.0.1:6379> geoadd geos 2 2 2,2

(integer)1

127.0.0.1:6379> geoadd geos 2 3 2,3

(integer)1

127.0.0.1:6379> geoadd geos 3 1 3,1

(integer)1

127.0.0.1:6379> geoadd geos 3 2 3,2

(integer)1

127.0.0.1:6379> geoadd geos 3 3 3.3

(integer)1

127.0.0.1:6379> geoadd geos 5 5 5,5

(integer)1

127 .0.0.1:6379> georadiusbymember geos 2.2 180 km

0.1:6379> georadiusbymember geos 2,2 120 km [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [AsCIDESC]

相关文章
|
测试技术 API
harfbuzz 的用法
HarfBuzz 整形 API 的核心是函数。此函数采用一种字体,即 包含一串 Unicode 代码点的缓冲区和 (可选)字体功能列表作为其输入。它取代了 缓冲区中的代码点,其中包含来自 字体,正确排序和定位,以及任何 应用的可选字体功能。hb_shape()
502 0
propertyIsEnumerable的用法
propertyIsEnumerable用法 语法和功能 obj.propertyIsEnumerable(prop): 判断prop属性是否是obj的可枚举属性
188 0
$.each()的用法
$.each()的用法
249 0
|
C# 容器 数据格式
AvalonDock的基本用法
原文:AvalonDock的基本用法         AvalonDock是优秀的开源项目,用于创建可停靠式布局,能够在WPF中方便开发出类似VS2010的软件界面。对于复杂的软件系统,大量控件的使用会使的界面变得难以管理。
2214 0