ST_DISTANCE函數用於計算兩個地理對象之間的最短距離,以米為單位。
命令格式
DOUBLE ST_DISTANCE(GEOGRAPHY <value1>, GEOGRAPHY <value2>)參數說明
value1、value2:必填。GEOGRAPHY資料類型的地理對象。可根據需求使用ST_GEOGPOINT、ST_GEOGFROMWKB、ST_GEOGFROMTEXT、ST_MAKELINE和ST_MAKEPOLYGON函數來構造GEOGRAPHY類型對象。
傳回值說明
返回DOUBLE類型,表示兩個地理對象之間的最短距離,單位為米。返回規則如下:
若value1或value2為空白的地理對象,則返回NULL。
由於S2地理庫的精度問題的影響,傳回值可能與實際距離存在非常微小的差異。
使用樣本
樣本1:計算兩個地理點之間的最短距離
SELECT ST_DISTANCE(ST_GEOGFROMTEXT('POINT(0 0)'), ST_GEOGFROMTEXT('POINT(1 1)')); -- 返回結果: +-----------------------+ | _c0 | +-----------------------+ | 157249.62809250783 | +-----------------------+樣本2:空地理對象處理
-- 返回NULL,因為第2個地理對象是empty SELECT ST_DISTANCE(ST_GEOGFROMTEXT('POINT(0 0)'), ST_GEOGFROMTEXT('POINT EMPTY'));