Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cartodb SQL:ST_MakeLine转换_Sql_Cartodb - Fatal编程技术网

Cartodb SQL:ST_MakeLine转换

Cartodb SQL:ST_MakeLine转换,sql,cartodb,Sql,Cartodb,我正在使用Cartodb映射一些GPS点,我希望将唯一ID与线路连接起来。在编写SQL时,我将此用作参考。SQL执行时没有任何错误,但我的映射没有生成 这是我正在运行SQL的CSV数据集: X Y track_fid track_seg_point_id time -87.5999 41.7083 0 0 2/17/2018 16:10 -87.74214 41.

我正在使用Cartodb映射一些GPS点,我希望将唯一ID与线路连接起来。在编写SQL时,我将此用作参考。SQL执行时没有任何错误,但我的映射没有生成

这是我正在运行SQL的CSV数据集:

X           Y         track_fid       track_seg_point_id    time
-87.5999    41.7083     0              0                   2/17/2018 16:10
-87.74214   41.91581    0              0                   2/17/2018 16:11
-87.6005    41.7081     0              0                   2/17/2018 16:14
-87.6584    41.8265     0              1                   2/17/2018 16:41
-87.63029   41.85842    0              1                   2/17/2018 16:59
-87.7308    41.8893     0              1                   2/17/2018 17:07
-87.59857   41.708393   0              2                   2/17/2018 17:08
-87.5995    41.7081     0              2                   2/17/2018 17:15
-87.68106   41.799088   0              2                   2/17/2018 17:47
以下是我的SQL:

SELECT 
    ST_MakeLine(the_geom_webmercator ORDER BY time ASC) AS the_geom_webmercator,
    extract(hour from time) as hour,
    track_seg_point_id AS cartodb_id


    FROM snow_plow_data

    GROUP BY
    track_seg_point_id,
    hour
以下是我的SQL生成的表:

Hour       cartodb_id
16         0
16         1
17         1
17         2

任何关于为什么我的地图点不显示为线的想法或建议都非常好。

如果您使用的是BUILDER UI,您可以添加、按
时间排序以及按
轨迹fid
字段(或
轨迹seg\U点id
,不知道要使用哪个字段)对线进行分组:

另一方面,如果您想使用SQL控制台执行此操作。CARTO BUILDER现在不仅需要
cartodb\u id
的\u geom\u webmercator
,还需要
的\u geom
列。因此,您需要将最后一个字段添加到查询中。像这样的方法应该会奏效:

WITH lines as (
  SELECT 
      ST_MakeLine(the_geom_webmercator ORDER BY time ASC) AS the_geom_webmercator,
      ROW_NUMBER() OVER() as cartodb_id
  FROM 
      tracks
  GROUP BY
      track_seg_point_id)

SELECT
    ST_Transform(the_geom_webmercator, 4326) as the_geom,
    *
FROM
    lines

如果您使用的是BUILDER UI,您可以添加、按
时间排序以及按
轨迹fid
字段分组行(或
轨迹seg\u点\u id
,不知道要使用哪个字段):

另一方面,如果您想使用SQL控制台执行此操作。CARTO BUILDER现在不仅需要
cartodb\u id
的\u geom\u webmercator
,还需要
的\u geom
列。因此,您需要将最后一个字段添加到查询中。像这样的方法应该会奏效:

WITH lines as (
  SELECT 
      ST_MakeLine(the_geom_webmercator ORDER BY time ASC) AS the_geom_webmercator,
      ROW_NUMBER() OVER() as cartodb_id
  FROM 
      tracks
  GROUP BY
      track_seg_point_id)

SELECT
    ST_Transform(the_geom_webmercator, 4326) as the_geom,
    *
FROM
    lines

Hi@ramiroaznar感谢您的回复。您提供的SQL成功运行,但它返回一个包含
The\u geom
cartodb\u id
列的表。此外,_geom
列的所有值均为空。您的第一个答案已通过
从点创建线
,谢谢!您好@ramiroaznar我正在尝试您的SQL答案,但是_geom列导致
null
,您知道为什么吗?您可以发布另一个问题,其中包含您正在应用的确切查询和数据集的链接吗?您好@ramiroaznar感谢您的回答。您提供的SQL成功运行,但它返回一个包含
The\u geom
cartodb\u id
列的表。此外,_geom
列的所有值均为空。您的第一个答案已通过
从点创建线
,谢谢!您好@ramiroaznar我正在尝试您的SQL答案,但是_geom列导致
null
,您知道为什么吗?您可以发布另一个问题,其中包含您正在应用的确切查询和数据集的链接吗?