全部產品
Search
文件中心

MaxCompute:ST_MAKELINE

更新時間:Aug 27, 2026

ST_MAKELINE函數通過指定的端點來構造LineString類型的地理對象。

命令格式

ST_MAKELINE函數支援以下兩種簽名格式,請根據不同的使用需求選擇不同的函數簽名。

  • 簽名1:通過指定兩個端點來構造一個LineString類型的地理對象。

    GEOGRAPHY ST_MAKELINE(GEOGRAPHY <point1>, GEOGRAPHY <point2>)
  • 簽名2:通過ARRAY類型的一個或者多個端點來構造LineString類型的地理對象。

    GEOGRAPHY ST_MAKELINE(ARRAY<GEOGRAPHY> <points>)

參數說明

  • point1、point2:必填。POINT類型的地理對象。可根據需求使用ST_GEOGPOINTST_GEOGFROMWKBST_GEOGFROMTEXT函數來構造POINT類型的地理對象。

  • points:必填。ARRAY類型,ARRAY中的每一個元素都必須是POINT類型的地理對象,並且ARRAY中至少要有一個元素。 可根據需求使用ST_GEOGPOINTST_GEOGFROMWKBST_GEOGFROMTEXT函數來構造POINT類型的地理對象。

傳回值說明

返回一個LineString類型的地理對象。返回規則如下:

  • 若輸入的GEOGRAPHY為NULL輸入的ARRAY或ARRAY中的任何元素為NULL,則返回NULL。

  • 在某些特定的情境下(如輸入兩個相同的點、ARRAY中只有一個元素),返回結果可能會退化為一個Point點。

  • 由於S2地理庫的精度問題的影響,輸入和輸出可能有非常微小的差異。

使用樣本

  • 樣本1:通過指定兩個端點來構造一個LineString類型的地理對象。

    -- 輸入兩個不同的端點,返回一個LineString
    SELECT ST_MAKELINE(ST_GEOGPOINT(270, 0), ST_GEOGPOINT(1, 1));
    -- 返回結果:
    +-------------------------+
    | _c0                     |
    +-------------------------+
    | LINESTRING (-90 0, 1 1) |
    +-------------------------+
    
    -- 輸入兩個相同的端點,傳回值退化成一個點
    SELECT ST_MAKELINE(ST_GEOGPOINT(1, 1), ST_GEOGPOINT(1, 1));
    -- 返回結果:
    +-------------+
    | _c0         |
    +-------------+
    | POINT (1 1) |
    +-------------+
  • 樣本2:通過ARRAY類型的1個或者多個端點來構造LineString類型地理對象。

    -- 輸入一個array,返回一個LineString
    SELECT ST_MAKELINE(ARRAY(ST_GEOGPOINT(0, 0), ST_GEOGPOINT(1, 1), ST_GEOGPOINT(2, 2)));
    -- 返回結果:
    +----------------------------+
    | _c0                        |
    +----------------------------+
    | LINESTRING (0 0, 1 1, 2 2) |
    +----------------------------+
    
    -- 輸入一個array,array中只有一個元素,傳回值退化成1個點
    SELECT ST_MAKELINE(ARRAY(ST_GEOGPOINT(0, 0)));
    -- 返回結果:
    +-------------+
    | _c0         |
    +-------------+
    | POINT (0 0) |
    +-------------+

相關文檔