Cartodb SQL:ST_MakeLine转换
我正在使用Cartodb映射一些GPS点,我希望将唯一ID与线路连接起来。在编写SQL时,我将此用作参考。SQL执行时没有任何错误,但我的映射没有生成 这是我正在运行SQL的CSV数据集: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.
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
,您知道为什么吗?您可以发布另一个问题,其中包含您正在应用的确切查询和数据集的链接吗?