您好,登錄后才能下訂單哦!
MySQL引擎特性GIS-R-TREE
Geohash用于代表位置的經緯度編碼成一個字符串,支持WGS 84 Coordinate System
MySQL支持的空間數據類型包括GEOMETRY,POINT,LINESTRING,POLYGON.其中GEOMETRY可以表示任意一種空間類型,其他幾種則需要固定有效的存儲格式如(MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION)
兩種標準插入數據:
1、WTK文本格式,在插入數據時直接用文本插入,如point(1,2)、LINESTRING(0 0, 10 10, 20 25, 50 60),內部會轉換成特定的格式存儲,通過ASTEXT()轉換成WKT的結果格式
2、WKB標準的數據,通過函數GeomFromWKB進行插入轉換,如point(1 2)包含21字節,在從表中查取數據時,通過ASBINARY()將結果轉換成WKB各式
#在INNODB存儲引擎中使用的存儲為BLOB類型,存儲的數據格式為WKB格式,再加上4字節的SRID(Spatial Reference Identifier.空間關系標示)
MBR介紹
R-TREE專門用來表示空間數據類型,存儲的記錄類型是該空間數據所能表示的最小邊界的矩形,簡稱MBR(最小邊框矩形minimum bounding rectangle)
MBR記錄能包圍這些空間的最小矩形,對于水平或垂直的直線,MBR實際上記錄的是直線,POINT話MBR表示的是一個退化成點的矩形
R-TREE部分特點:
1、葉子節點記錄包含了MBR以及指向的聚集索引記錄,非葉子節點記錄包含了指向葉子節點的指針,及對應葉子節點記錄所組成的MBR,目前只支持二維數據的索引
2、SPATIAL INDEX的鍵值的列必須顯示定義為NOT NULL,只支持定義一個空間數據類型的列
3、R-TREE采用一種和B-TREE截然不同的數據檢索方式,檢索過程中主要通過SSN(SPLIT SEQ NUM)來判斷是否有數據頁發生了分裂
4、RTREE中存儲的并不是真正的數據,而是基于鍵值列的數據構建的MBR,因此在插入數據前需要計算根據傳遞過來的WKB格式計算出MBR,所以必須通過聚集索引獲取真正的地理數據
5、目前不支持緩存R-TREE的數據變更操作,也不支持自適應哈希,無法使用NEXT-KEY來防止幻讀,因此引入Predicate Lock來防止幻讀
關于空間數據類型的分析計算函數(可以從官方文檔上獲得全部信息):
1、ST_GEOMFROMTEXT用于將空間數據從可讀的文本類型轉換成內部存儲的二進制類型
2、ST_ASTEXT將空間數據轉換成可讀的文本類型
3、POINT(arg1,arg2)函數用戶代表地理空間上某個點的位置,arg1為經度,arg2為維度
4、ST_DISTANCE_SPHERE:計算兩個地點的球面距離,單位為米
5、MBRWITHIN:該函數為求出你周圍的目的地目標,MBRWITHIN(g1,g2)意義:如果g1在g2的范圍內則返回1否則返回0
6、MBRCONTAINS:表示某個多變形內是否包含某個點,或某距離內包含某點
7、MBRINTERSECTS:用戶判斷兩個空間類型是否存在重疊或者交叉
8、MBRDISJOINT:判斷是否相交,不相交返回1
9、MBROVERLAPS:當g1和g2存在重疊時返回1,重疊指的是兩個空間類型的交叉部分產生相同維度的幾何圖形,但不等于g1或g2
10、MBREQUAL:是否相等
11、MBRTOUCHES:存在重合但不相交時返回1,如某個點在一條直線上返回1
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。