地理空间路由

Dou*_*ren 10 math geospatial c#-4.0

我是一名物流程序员,我被要求弄清楚GPS点是否"偏离路线",其中路线由许多地理空间点(纬度,经度)组成.

确定某点是否在路线附近的最佳算法是什么?我将使用C#和SQL Server,但如果我知道要使用什么算法,那真的无关紧要.

我考虑过了

  1. 找到两个最近的点并确定三角形的面积是否高于特定限制.
  2. 使用所有点对的矢量,然后检查它们中的任何一个是否与GPS点定义的矢量"相似",并且我确定该点在路线中是"下一个".

我没有数学学位,但考虑到正确的术语和搜索引擎,我可以处理任何事情.

我将不得不每小时至少进行4000次计算,因此使用映射解决方案可能因音量而无法接受.

Rya*_*ton 5

我将不得不每小时至少进行4000次计算,因此使用映射解决方案可能因音量而无法接受.

实际上,这是一个完美的示例,其中映射解决方案将是有益的.不是传统的"查看地图并确定距离",而是"让数据库确定最接近GPS点的路径.

既然你说你不反对使用不同的数据库,你可以考虑:

  1. SQL Server 2008,具有空间数据库引擎功能,或
  2. PostgreSQL具有开源的PostGIS(空间)扩展,它具有明显更多的空间分析功能,即MS SQL 2008.

请查看PostGIS ST_Distance函数或MS SQL Server 2008 STDistance函数.这是一篇很好的博客文章,描述了SQL2005与SQL2008的优点.

您还可以考虑在gis.stackexchange上阅读(或询问更详细的映射)帖子.整个小组致力于空间分析.一些好的讨论供您查看


Ano*_*sse 4

谷歌搜索“ Along-track distance”,你应该可以找到航空领域常用的公式。或者,cross-track distance也可能是您想要的。