日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

TairGis是一種使用R-Tree做索引,支持地理信息系統(tǒng)GIS(Geographic Information System)相關接口的數(shù)據(jù)結構。Redis的原生GEO命令是使用GeoHash和Redis Sorted Set結構完成的,主要用于點的查詢,TairGIS在此基礎上還支持線、面的查詢,功能更加強大。

主要特性

  • 使用R-Tree作為索引存儲。

  • 支持線、面的相關查詢(含相交查詢)。

  • 通過GIS.SEARCH可實現(xiàn)原生Redis GEORADIUS命令的功能。

該Module已開源,更多信息請參見TairGIS

最佳實踐

前提條件

實例為Tair內(nèi)存型

說明

最新小版本將提供更豐富的功能與穩(wěn)定的服務,建議將實例的小版本升級到最新,具體操作請參見升級小版本。如果您的實例為集群架構或讀寫分離架構,請將代理節(jié)點的小版本也升級到最新,否則可能出現(xiàn)命令無法識別的情況。

注意事項

操作對象為Tair實例中的TairGIS數(shù)據(jù)。

命令列表

表 1. TairGIS命令

命令

語法

說明

GIS.ADD

GIS.ADD area polygonName polygonWkt [polygonName polygonWkt ...]

在area中添加指定名稱的多邊形(可添加多個),使用WKT(Well-known text)描述。

說明

WKT是一種文本標記語言,用于描述矢量幾何對象、空間參照系統(tǒng)及空間參照系統(tǒng)之間的轉換。

GIS.GET

GIS.GET area polygonName

獲取目標area中指定多邊形的WKT信息。

GIS.GETALL

GIS.GETALL area [WITHOUTWKT]

獲取目標area中所有多邊形的名稱和WKT信息。如果設置了WITHOUTWKT選項,僅返回多邊形的名稱。

GIS.CONTAINS

GIS.CONTAINS area polygonWkt [WITHOUTWKT]

判斷指定的點、線或面是否包含在目標area的多邊形中,若包含,則返回目標area中命中的多邊形數(shù)量與多邊形信息。

GIS.WITHIN

GIS.WITHIN area polygonWkt [WITHOUTWKT]

判斷目標area是否包含在指定的點、線或面中,若包含,則返回目標area中命中的多邊形數(shù)量與多邊形信息。

GIS.INTERSECTS

GIS.INTERSECTS area polygonWkt

判斷指定的點、線或面與目標area的多邊形是否相交,若相交,則返回目標area中與其相交的多邊形數(shù)量與多邊形信息。

GIS.SEARCH

GIS.SEARCH area [RADIUS longitude latitude distance M|KM|FT|MI] [MEMBER field distance M|KM|FT|MI] [GEOM geom] [COUNT count] [ASC|DESC] [WITHDIST] [WITHOUTWKT]

在指定經(jīng)、緯度及半徑距離范圍內(nèi),查找目標area中的點。

GIS.DEL

GIS.DEL area polygonName

刪除目標area中指定的多邊形。

DEL

DEL key [key ...]

原生Redis命令,可以刪除一條或多條TairGIS數(shù)據(jù)。

說明

本文的命令語法定義如下:

  • 大寫關鍵字:命令關鍵字。

  • 斜體:變量。

  • [options]:可選參數(shù),不在括號中的參數(shù)為必選。

  • A|B:該組參數(shù)互斥,請進行二選一或多選一。

  • ...:前面的內(nèi)容可重復。

GIS.ADD

類別

說明

語法

GIS.ADD area polygonName polygonWkt [polygonName polygonWkt ...]

時間復雜度

O(log n)

命令描述

在area中添加指定名稱的多邊形(可添加多個),使用WKT(Well-known text)描述。

說明

WKT是一種文本標記語言,用于描述矢量幾何對象、空間參照系統(tǒng)及空間參照系統(tǒng)之間的轉換。

選項

  • area:一個幾何概念。

  • PolygonName:多邊形的名稱。

  • polygonWkt:多邊形的描述信息,表示現(xiàn)實世界的經(jīng)、緯度,使用WKT(Well-known text)描述,支持如下類型。

    • POINT:描述一個點的WKT信息,例如'POINT (120.086631 30.138141)',表示該POINT位于經(jīng)度120.086631,緯度30.138141。

    • LINESTRING:描述一條線的WKT信息,由兩個POINT組成,例如'LINESTRING (30 10, 40 40)'

    • POLYGON:描述一個多邊形的WKT信息,由多個POINT組成,例如'POLYGON ((31 20, 29 20, 29 21, 31 31))'

    說明
    • 經(jīng)度的取值范圍為(-180,180), 緯度的取值范圍為(-90,90)。

    • 不支持如下集合類型:MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、GEOMETRY和COLLECTION。

返回值

  • 執(zhí)行成功:返回插入和更新成功的多邊形數(shù)量。

  • 其它情況返回相應的異常信息。

示例

命令示例:

GIS.ADD hangzhou campus 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))'

返回示例:

(integer) 1

GIS.GET

類別

說明

語法

GIS.GET area polygonName

時間復雜度

O(1)

命令描述

獲取目標area中指定多邊形的WKT信息。

選項

  • area:一個幾何概念。

  • PolygonName:多邊形的名稱。

返回值

  • 執(zhí)行成功:WKT信息。

  • area或polygonName不存在:nil。

  • 其它情況返回相應的異常信息。

示例

提前執(zhí)行GIS.ADD hangzhou campus 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))'命令。

命令示例:

GIS.GET hangzhou campus

返回示例:

'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))'

GIS.GETALL

類別

說明

語法

GIS.GETALL area [WITHOUTWKT]

時間復雜度

O(n)

命令描述

獲取目標area中所有多邊形的名稱和WKT信息。如果設置了WITHOUTWKT選項,僅返回多邊形的名稱。

選項

  • area:一個幾何概念。

  • WITHOUTWKT:用于控制是否返回多邊形的WKT信息,如果加上該參數(shù),則不返回多邊形的WKT信息。

返回值

  • 執(zhí)行成功:返回多邊形名稱和WKT信息,如果設置了WITHOUTWKT選項,僅返回多邊形的名稱。

  • area不存在:nil。

  • 其它情況返回相應的異常信息。

示例

提前執(zhí)行GIS.ADD hangzhou campus 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))'命令。

命令示例:

GIS.GETALL hangzhou

返回示例:

1) "campus"
2) "POLYGON((30 10,40 40,20 40,10 20,30 10))"

GIS.CONTAINS

類別

說明

語法

GIS.CONTAINS area polygonWkt [WITHOUTWKT]

時間復雜度

  • 最理想情況:log公式

  • 最差情況:O(log n)

命令描述

判斷指定的點、線或面是否包含在目標area的多邊形中,若包含,則返回目標area中命中的多邊形數(shù)量與多邊形信息。

選項

  • area:一個幾何概念。

  • polygonWkt:指定與目標area進行比較的多邊形描述信息,使用WKT(Well-known text)描述,支持如下類型。

    • POINT:描述一個點的WKT信息。

    • LINESTRING:描述一條線的WKT信息。

    • POLYGON:描述一個多邊形的WKT信息。

  • WITHOUTWKT:用于控制是否返回多邊形的WKT信息,如果加上該參數(shù),則不返回多邊形的WKT信息。

返回值

  • 執(zhí)行成功:命中的多邊形數(shù)量與多邊形信息。

  • area不存在:empty list or set。

  • 其它情況返回相應的異常信息。

示例

提前執(zhí)行GIS.ADD hangzhou campus 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))'命令。

命令示例:

GIS.CONTAINS hangzhou 'POINT (30 11)'

返回示例:

1) "1"
2) 1) "campus"
   2) "POLYGON((30 10,40 40,20 40,10 20,30 10))"

GIS.WITHIN

類別

說明

語法

GIS.WITHIN area polygonWkt [WITHOUTWKT]

時間復雜度

  • 最理想情況:log公式

  • 最差情況:O(log n)

命令描述

判斷目標area是否包含在指定的點、線或面中,若包含,則返回目標area中命中的多邊形數(shù)量與多邊形信息。

選項

  • area:一個幾何概念。

  • polygonWkt:指定與目標area進行比較的多邊形描述信息,使用WKT(Well-known text)描述,支持如下類型。

    • POINT:描述一個點的WKT信息。

    • LINESTRING:描述一條線的WKT信息。

    • POLYGON:描述一個多邊形的WKT信息。

    說明

    不支持MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、GEOMETRY和COLLECTION。

  • WITHOUTWKT:用于控制是否返回多邊形的WKT信息,如果加上該參數(shù),則不返回多邊形的WKT信息。

返回值

  • 執(zhí)行成功:命中的多邊形數(shù)量與多邊形信息。

  • area不存在:empty list or set。

  • 其它情況返回相應的異常信息。

示例

提前執(zhí)行GIS.ADD hangzhou campus 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))'命令。

命令示例:

 GIS.WITHIN hangzhou  'POLYGON ((30 5, 50 50, 20 50, 5 20, 30 5))'

返回示例:

1) "1"
2) 1) "campus"
   2) "POLYGON((30 10,40 40,20 40,10 20,30 10))"

GIS.INTERSECTS

類別

說明

語法

GIS.INTERSECTS area polygonWkt

時間復雜度

  • 最理想情況:log公式

  • 最差情況:O(log n)

命令描述

判斷指定的點、線或面與目標area的多邊形是否相交,若相交,則返回目標area中與其相交的多邊形數(shù)量與多邊形信息。

選項

  • area:一個幾何概念。

  • polygonWkt:指定與目標area進行比較的多邊形描述信息,使用WKT(Well-known text)描述,支持如下類型。

    • POINT:描述一個點的WKT信息。

    • LINESTRING:描述一條線的WKT信息。

    • POLYGON:描述一個多邊形的WKT信息。

  • WITHOUTWKT:用于控制是否返回多邊形的WKT信息,如果加上該參數(shù),則不返回多邊形的WKT信息。

返回值

  • 執(zhí)行成功:命中的多邊形數(shù)量與多邊形信息。

  • area不存在:empty list or set。

  • 其它情況返回相應的異常信息。

示例

提前執(zhí)行GIS.ADD hangzhou campus 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))'命令。

命令示例:

 GIS.INTERSECTS hangzhou 'LINESTRING (30 10, 40 40)'

返回示例:

1) "1"
2) 1) "campus"
   2) "POLYGON((30 10,40 40,20 40,10 20,30 10))"

GIS.SEARCH

類別

說明

語法

GIS.SEARCH area [RADIUS longitude latitude distance M|KM|FT|MI]
[MEMBER field distance M|KM|FT|MI]
[GEOM geom]
[COUNT count]
[ASC|DESC]
[WITHDIST]
[WITHOUTWKT]

時間復雜度

  • 最理想情況:log公式

  • 最差情況:O(log n)

命令描述

在指定經(jīng)、緯度及半徑距離范圍內(nèi),查找目標area中的點。

選項

  • area:一個幾何概念。

  • RADIUS:傳入經(jīng)度(longitude)、緯度(latitude)、半徑距離(distance)和半徑單位(M表示米、KM表示千米、FT表示英尺、MI表示英里)進行搜索,例如RADIUS 15 37 200 KM

  • MEMBER:選擇當前area中已存在的POINT作為搜索原點,并指定半徑進行搜索,取值順序為多邊形名稱(field)、半徑(distance)、半徑單位(M表示米、KM表示千米、FT表示英尺、MI表示英里),例如MEMBER Agrigento 100 KM

  • GEOM:按照WKT的格式設置搜索范圍,可以是任意多邊形,例如GEOM 'POLYGON((10 30,20 30,20 40,10 40))'

  • COUNT:用于限定返回的個數(shù),例如COUNT 3

  • ASC|DESC:用于控制返回信息按照距離排序,ASC表示根據(jù)中心位置,由近到遠排序;DESC表示由遠到近排序。

  • WITHDIST:用于控制是否返回目標點與搜索原點的距離。

  • WITHOUTWKT:用于控制是否返回目標點的WKT信息,如果加上該參數(shù),則不返回WKT信息。

說明

只能同時使用RADIUSMEMBERGEOM中的一種方式。

返回值

  • 執(zhí)行成功:命中的目標點數(shù)量與WKT信息。

  • area不存在:empty list or set。

  • 其它情況返回相應的異常信息。

示例

提前執(zhí)行GIS.ADD Sicily "Palermo" "POINT (13.361389 38.115556)" "Catania" "POINT(15.087269 37.502669)"命令。

命令示例:

GIS.SEARCH Sicily RADIUS 15 37 200 km WITHDIST ASC

返回示例:

1) (integer) 2
2) 1) "Catania"
   2) "POINT(15.087269 37.502669)"
   3) "56.4413"
   4) "Palermo"
   5) "POINT(13.361389 38.115556)"
   6) "190.4424"

GIS.DEL

類別

說明

語法

GIS.DEL area polygonName

時間復雜度

O(log n)

命令描述

刪除目標area中指定的多邊形。

選項

  • area:一個幾何概念。

  • PolygonName:多邊形的名稱。

返回值

  • 執(zhí)行成功:OK。

  • area或polygonName不存在:nil。

  • 其它情況返回相應的異常信息。

示例

提前執(zhí)行GIS.ADD hangzhou campus 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))'命令。

命令示例:

GIS.DEL hangzhou campus

返回示例:

OK