首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >找出全球定位系统的通道点是否已经通过

找出全球定位系统的通道点是否已经通过
EN

Stack Overflow用户
提问于 2014-04-14 17:47:19
回答 2查看 1.4K关注 0票数 2

想象一下马拉松上的几个跑步者。运动员们都戴着GPS设备。赛道本身没有传感器,我需要知道当每个运动员通过一组预定的GPS坐标。然而,每个运动员可能在一个稍微不同的拉特/长的方向通过,因为赛道/道路可能足够宽,以致于使用不同的轨道/道路部分。

确定运动员是否通过了一个终点的最佳方法是什么?

我正在使用Python,并且开放使用外部库。我正在处理经过预处理的GPS数据,所以我只有每个时间点的纬度和经度(还有其他一些零碎的东西,比如速度和旅行的距离)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-15 19:10:40

解决你的问题的方法不多。我首先想到的是:

代码语言:javascript
运行
复制
from shapely.geometry import LineString

line1 = LineString([(i, i) for i in range(5)])
line2 = zip(range(5)[::-1], range(5))

if line1.crosses(line2):
    print 'yeah!'

添加一个循环并迭代每条路径点线。

其他可能的选择:

  • 利用两条直线相交的简单数学计算-高中教材
  • 使用postgis将您的数据导入postgres,并使用postgis函数,例如ST_Crosses (如果postgres对您来说太重了,我会尝试一下SpatialLite-sqlite )
  • 比什普,外形,gdal/geos,geodjango,地球化学
  • 结合上面的一些,写一些更花哨的algo,比如在一行/点周围创建一个缓冲区,并检查它是否"ST_Contains“GPS位置,也检查以后是否有任何位置离开缓冲区(?)
票数 1
EN

Stack Overflow用户

发布于 2014-04-15 07:28:09

你可以试试这个:

路径点是两个轨道(线)段相交的点(图片中的黑线)。通过路径点绘制一条与所述直线段之一正交的直线,用于在该路径点(通过图片中的路径点的红线和蓝线)中的每一条线段。当跑步者进入图片中标记为红色的区域(假设跑步者来自右边)时,它被认为是接近终点的。一段时间后,跑步者可能会进入图片中标记为蓝色的区域--当这种情况发生时,跑步者已经通过了方向点。

如果赛跑者从来没有出现在标有蓝色的区域,赛跑者就偏离了跑道,就没有通过终点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23066741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档