计算重叠轨道段

问题描述 投票:0回答:1

我的目标是实现与 Strava 全球热图功能类似的功能。所以基本上计算来自 GPX 源的曲目的热图。

假设我有两个 GPX 文件。我设法通过 ogr2ogr 将它们作为多行字符串导入到 PostGIS 数据库中。现在我的轨迹表中有两行具有以下几何形状:

{"type":"MultiLineString","coordinates":[[[11.363516,47.655794],[11.364301,47.655176],[11.364413,47.655137],[11.364871,47.654996],[11.365184,47.654925],[11.365453,47.655203],[11.365938,47.655518],[11.36609,47.655665],[11.366221,47.655918]]]}
{"type":"MultiLineString","coordinates":[[[11.364048,47.654866],[11.364423,47.655141],[11.364881,47.655],[11.365189,47.654965],[11.365542,47.654859],[11.365846,47.654845],[11.365935,47.654849]]]}

这两个轨道共享(至少如果您允许一定的容差)其部分片段:

如果我要分析 100-200 个曲目,其中一些会共享一些片段,其他则不会。

我的目标是找到那些共享的片段(丢弃其中一个片段)并增加不同列中的“热度”/“计数”。

我认为 Strava 正在做这件事在点层面上。这可以处理数十亿个数据点,但就我个人而言,仅采用正常的 track_points 并在那里进行“正常”热图计算看起来不太好。

我发现的用于通过空间操作计算此值的一些信息已经超过 5-8 年了,所以我希望有任何稍微舒适的解决方案可以在某些框架中或通过 Postgis ST 计算或一些 python 编码来执行此操作。

对此有什么想法吗?

python geospatial postgis spatial
1个回答
0
投票

您可以使用的一种方法是地图匹配,然后您可以在循环响应时简单地计算相同边缘 id/osm id 的数量。当然,只有当您的几何图形代表 OpenStreetMap 中存在的道路或路径时,这才是可能的。看看瓦尔哈拉。他们有一个免费的 API,您可以将其用于此用例。在响应中您将找到路径 ID。来自文档

您可以将 GPS 轨迹转换为与轨迹匹配的一组路径 ID。

这应该足以计算您要求的count

© www.soinside.com 2019 - 2024. All rights reserved.