- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 CartoDB作为我的应用程序的 PostGIS 服务器。
我需要存储轨迹并为每个坐标对轨迹点关联时间戳,以便进行类似 give me the distance traveled between 12AM and 12PM on day X
的查询。 .
在 CartoDB 中,我只能创建 3 种类型的表:MULTIPOINT、MULTILINESTRING 和 MULTIPOLYGON。要插入轨道,我使用的是 MULTILINESTRING 表。
我的第一个尝试是插入时间戳作为 MULTILINESTRING 中每个点的 Z 索引,但是我总是得到一个 ERROR: Geometry has Z dimension but column does not.
这是如何在“普通”PostGIS 数据库中实现的,以及如何在 CartoDB PostGIS 实现中实现它?
更新1:
所以在 jatorre 回答之后我创建了一个 JSFiddle例如作为练习练习。
但是,我得到了不连贯的结果。
在上面的示例中,我有两个具有相同两个数据集的表。然而,一个是 MULTILINESTRING
表中的每一行代表一个 segment
另一个是 MULTIPOINT
我在其中存储每个表 segment
坐标集。
然后我查询这两个表得到 total distance of segments according to transport mode
.我想我很清楚 jattore 的想法,但是我不明白为什么 Car
得到不同的结果和 Walk
总距离。任何提示?
解决方案:
距离的微小差异是因为我需要对 points
进行排序。分组前的表 segment
.
这是我当前的查询,用于根据运输方式获取总距离和旅行时间:
WITH segments AS
(SELECT ST_Makeline(pts.the_geom_webmercator) as the_geom, (MAX(pts.timestamp) - MIN(pts.timestamp)) AS time, paths.transport_mode, paths.cartodb_id AS id
FROM (SELECT * FROM points ORDER BY track_id, path_id, timestamp ASC) AS pts JOIN paths ON pts.path_id=paths.cartodb_id
WHERE paths.user_id=1
GROUP BY id, transport_mode)
SELECT SUM(ST_Length(segments.the_geom)) AS distance, SUM(segments.time), segments.transport_mode
FROM segments
GROUP BY segments.transport_mode
ORDER BY distance
最佳答案
嗯,这有点取决于。
假设您有一个 GPS 轨迹结构。在这种情况下,您将这些 GPS 轨迹转换为 Segments,即只有两个坐标的线,并且您可以将 start_time 和 end_time 列分开。
然后使用该结构,您可以在这些日期之间使用 WHERE 子句执行 SELECT,并对段的 ST_Length_Spheroid 求和。
如果您想在一个查询中完成所有操作,请考虑到您有一个包含以下内容的表:
the_geom(point), timestamp, cartodb_id
WITH segments AS
(SELECT ST_MakeLine(
the_geom,
(SELECT the_geom FROM tracks as st WHERE st.cartodb_id = t.cartodb_id+1)
) as the_geom
FROM traces as t WHERE timestamp BETWEEN ...)
SELECT sum(ST_Length_Spheroid(segments.the_geom)
关于gis - PostGIS/CartoDB : Store Timestamp for each point in a MultiLineString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11249052/
我有一个名为 locations 的表,其中包含这些行: id uuid NOT NULL, "deviceId" text COLLATE pg_catalog."default", "userId
我有一个 MultiLineString,它由构成路径的各个 LineString 组成。路径有一个方向,必须对 LineStrings 进行排序以反射(reflect)此顺序。为此,必须反转一些字符
我有多边形形状,我想将它转换为 MultiLineString。请注意,方向通常是不同的:从点、坐标、线等使用 GeometryFactory 构建多边形。我开始考虑 GeometryTransfor
我有一个从 gqig gis 软件导出的 MultiLineString Geogeson 文件。一个小例子: { "type": "FeatureCollection", "name": "rout
我有一个从 gqig gis 软件导出的 MultiLineString Geogeson 文件。一个小例子: { "type": "FeatureCollection", "name": "rout
我正在开发一个 GeoDjango 应用程序,用户可以在其中上传 map 文件并执行一些基本的映射操作,例如查询多边形内的要素。 我发现用户有时会碰巧上传“MultiLineString”而不是“Po
我可以用 appendLineString 附加 lineStrings方法。但如何去除它们呢?我尝试splice它们来自 getLineStrings 数组,但没有成功。 我最接近的是: //mul
这是我的多行字符串的一部分: MULTILINESTRING((59.6338836103678 36.3408616511151,59.6336405351758 36.3410074124113)
这是我的多行字符串的一部分: MULTILINESTRING((59.6338836103678 36.3408616511151,59.6336405351758 36.3410074124113)
我正在使用 CartoDB作为我的应用程序的 PostGIS 服务器。 我需要存储轨迹并为每个坐标对轨迹点关联时间戳,以便进行类似 give me the distance traveled betw
目标:在同一个 pyplot 图上绘制 MultiPolygon(陆地)和 MultiLinestring(河流)。将土地涂成白色。 问题:似乎多线串显示为通过自动关闭所有线串以使它们成为多边形而构建
当我尝试将带有 MultiLineString 的源添加到“行”层时,没有呈现任何内容。没有错误,没有线条。 在我将 MultiLineString 要素转换为 LineString 要素后,线条渲染
我需要创建将使用 GeoJSON 数据(MultiLineString 格式)作为 Google map 上的数据层的 map 。我已经创建了一个 Google Maps JavaScript API
我正在尝试使用 Shapely 的 within 函数对 LineString 和点文件进行“空间连接”(仅供引用,点文件是使用 interpolate 生成的) LineString 上的函数)。问
我有一个 MultiLineString 对象,其中组成它的 LineStrings 没有正确排序(或者至少我希望它们如何排序)。 例如,假设我有以下两个 LineString: from shape
我正在尝试使用 Shapely 的 within 函数对 LineString 和点文件进行“空间连接”(仅供引用,点文件是使用 interpolate LineString 上的函数)。问题是 -
我正在使用谷歌地图 API v3 在我的 map 上绘制 GeoJSON。有了层点,它就可以正常运行了。但我有一个 MultiLineString Camda 并将 map 置于几何图形的中心会出现错
我正在按照 Cartopy 官方网站上提供的示例尝试使用 Cartopy。所有这些都正常工作,但第一个 import cartopy.crs as ccrs import matplotlib.pyp
我需要一种从 PostGIS/PostgreSQL 中的 MultiLineString 获取第 N 个 LineString 的方法,例如 ST_PointN从 LineString 获取第 N 个
我正在尝试将坐标对 $push 到包含 GeoJSON MultiLineString 的文档中,该文档嵌套如下:[[[Number]]] 当我像这样找到OneAndUpdate时: req.body
我是一名优秀的程序员,十分优秀!