【发布时间】:2012-01-21 06:05:13
【问题描述】:
我是一名物流程序员,有人要求我确定 GPS 点是否“偏离路线”,其中路线由多个地理空间点(纬度、经度)组成。
确定一个点是否在路线附近的最佳算法是什么?我将使用 C# 和 SQL Server,但如果我知道要使用什么算法,那真的没关系。
我考虑过
- 查找最近的两个点并确定三角形的面积是否超过特定限制。
- 对所有点对使用矢量,然后检查其中任何点是否与 GPS 点定义的矢量以及我确定为路线中“下一个”的点“相似”。
我没有数学学位,但只要有正确的术语和搜索引擎,我就可以处理任何事情。
我必须每小时至少进行 4000 次计算,因此由于体积的原因,使用映射解决方案可能是不可接受的。
【问题讨论】:
-
你问的是一个有趣的问题。这种三角形的表面积解决方案不起作用,因为相距很远的两个点会生成一个表面积很大的三角形,即使该点只是稍微偏离路线。不确定我有更好的解决方案。感谢您给我一些思考。
-
您使用的是什么版本的 SQL Server?除了纬度/经度之外,您是否有关于巴士位置的属性?可以将公共汽车 ID、路线 ID 等绑定到它应该在的正确道路/路线上怎么样?
-
@RyanDalton 2005 不幸的是。据我了解,2012 年有一些关于空间数据的非常好的功能。我不喜欢使用 mongo 或其他一些数据库,但这最终将需要更多的工作来设置和维护另一个具有实时信息的数据库。
-
@BrianWillis 是的,这就是我提出这个问题的原因。我想那会奏效。也不会找到 GPS 点到相关线路的距离。
标签: math c#-4.0 geospatial