【问题标题】:How can we find out if a point with a certain lat and long is located on road graph?我们如何确定具有一定纬度和经度的点是否位于路线图上?
【发布时间】:2012-07-13 15:30:46
【问题描述】:

我正在用 C# 编写一个 Windows 应用程序,它应该找到城市中两点之间最近的路径(道路)。我需要访问道路数据,比如道路起点和终点的坐标,也许是一个完整的数据库。

我不知道如何访问此类信息或文件。所以为了简单起见,我假设了一些特定的顶点和边(顶点之间的连接)。现在我有一个点(特定位置的坐标)。我想看看这个点位于哪个边缘。我看到只有关于顶点的开始和结束以及它们之间的连接(边=道路)的信息,我无法在道路上找到一个点的位置。我需要知道是否有任何方法可以找出具有特定坐标的点是否位于特定道路上。我也想知道地图数据通常包含什么样的信息——仅仅是道路两端的坐标,还是关于道路的更多信息?

【问题讨论】:

    标签: c#


    【解决方案1】:

    您需要计算位置和道路之间的距离,然后查看距离并确定它是否足够近。对于从点 a 到线 b 的距离,您需要计算 b 上的点 c,其中 c 到 a 垂直于 b。

    要实际计算这些距离,您需要做一些数学运算(考虑地球的圆度),所以我希望您掌握了一些技巧。关于如何计算distances between坐标和between a line and a point的说明。

    我编写了一个 GPS 应用程序,其中到某个点的距离必须为 25 米才能使当前位置在该点上。这个额外的空间非常重要,因为 GPS 在设计上是 10 米不准确的,所以如果您从 GPS 获取数据并且您必须距离目标 1 米,那么即使您站在目标旁边,您也可能永远无法到达它。

    【讨论】:

    • 感谢您的指导,但重点是在我的文件中,我只有顶点的坐标,而且我只知道顶点之间的连接,例如顶点 A 连接到顶点 B。我没有任何信息关于道路的位置,我不确定我是否应该拥有道路(边缘)上点的所有坐标,但我仍然知道只有顶点坐标 n 它们的连接是不够的,有什么线索吗?
    猜你喜欢
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 2016-10-20
    • 2011-07-14
    • 1970-01-01
    • 2015-07-12
    相关资源
    最近更新 更多