You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用st_makeline()连接单列相邻点,是否需要新增列?

使用ST_Makeline()连接单列中相邻点的实现方法

不需要预先创建包含两个点的额外列,利用BigQuery的窗口函数LEAD()就能获取当前行的下一个点,再结合ST_Makeline()生成连线。

修正后的完整代码如下:

WITH t1 AS (
    SELECT 
        *, 
        ST_GEOGPOINT(CAST(long AS FLOAT64), CAST(lat AS FLOAT64)) AS geometry 
    FROM `my_table.faissal.trajets_flix` 
    WHERE id = 1
)
SELECT 
    index_loc,
    geometry AS current_point,
    LEAD(geometry) OVER (ORDER BY index_loc) AS next_point,
    ST_MAKELINE(geometry, LEAD(geometry) OVER (ORDER BY index_loc)) AS line_geometry
FROM t1
WHERE LEAD(geometry) OVER (ORDER BY index_loc) IS NOT NULL
ORDER BY index_loc

代码说明:

  • LEAD(geometry) OVER (ORDER BY index_loc):按index_loc排序后,获取当前行的下一个点的几何对象。
  • ST_MAKELINE(geometry, next_point):将当前点和下一个点连接成线。
  • WHERE LEAD(geometry) OVER (...) IS NOT NULL:过滤掉最后一行(因为最后一行没有下一个点,无法生成连线)。

执行后,结果中的line_geometry列就是每两个相邻点之间的连线。

内容的提问来源于stack exchange,提问作者Galiado

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 17:36:21