math - 地理空间路由

标签 math c#-4.0 geospatial

我是一名物流程序员,有人问我是否要确定GPS点是否“偏离路线”,即该路线由多个地理空间点(纬度,经度)组成。

确定点是否在路线附近的最佳算法是什么?我将使用C#和SQL Server,但是如果我知道要使用哪种算法,那么实际上这并不重要。

我考虑过

  • 查找两个最近的点,并确定三角形的面积是否超过特定限制。
  • 对所有成对的点使用向量,然后检查是否有任何一个与GPS点定义的向量“相似”,并且我确定该点在 route 为“下一个”。

  • 我没有数学学位,但是只要提供了正确的术语和搜索引擎,我可能就可以处理任何事情。

    我每小时必须至少进行4000次计算,因此由于体积原因,使用映射解决方案可能 Not Acceptable 。

    最佳答案

    I will have to make at least 4000 calculations an hour so using a mapping solution is probably not acceptable due to volume.



    实际上,这是一个完善的示例,其中映射解决方案将是有益的。不是传统的“查看 map 并确定距离”,而是“让数据库确定最接近GPS点的路线是什么”。

    由于您说自己不反对使用其他数据库,因此可以考虑:
  • 具有Spatial Database Engine函数或
  • 的SQL Server 2008
  • 具有开源PostGIS(空间)扩展名的PostgreSQL,与MS SQL 2008相比,它具有明显更多的空间分析功能。

  • 看一下PostGIS ST_Distance函数或MS SQL Server 2008 STDistance函数。这是一个很好的blog entry,它描述了SQL2005与SQL2008的优点。

    您也可以考虑通过gis.stackexchange阅读(或询问更详细的映射)帖子。整个小组致力于空间分析。您可以引用一些很好的讨论
  • Find closest lat long to an input lat long (SQL Server 2008)
  • PostGIS : nearest point on a linestring to a given point
  • 关于math - 地理空间路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8917973/

    相关文章:

    无限/重复世界的数学/计算与旋转

    python - 自守程序的长时间运行

    objective-c - 评估字符串中的数学表达式? (NS字符串)

    algorithm - 有额外限制的排列

    c# - 如何区分系统变量和自定义变量

    c#-4.0 - 有关 IronJS 的信息

    c#-4.0 - 表达式等于

    以 NA 作为环境凸包外区域的光栅文件

    r - 查找两个大数据集之间最接近的坐标

    java - Geode 上的 Apache Lucene LatLonPoint 查询