2010-07-05 38 views
0

我正在C#中编写一个Windows应用程序,该应用程序应该在城市中的两个点之间找到最近的路径(道路)。我需要访问道路数据,例如道路的起点和终点的坐标,可能是一个完整的数据库。我们如何才能知道某条经纬线上的点是否位于道路图上?

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

回答

0

您需要计算位置和道路之间的距离,然后查看距离并确定距离是否足够近。对于从点a到线b的距离,需要计算b上的点c,其中c与a垂直于b。要实际计算这些距离,你需要做相当多的数学计算(考虑地球的四舍五入),所以我希望你在那里有一些技巧。关于如何计算distances between坐标和between a line and a point的说明。

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

+0

感谢您的指导,但重点是在我的文件中,我只有坐标的顶点,我只知道顶点之间的连接,如顶点A连接到顶点B.我没有关于道路,即时通讯不知道如果我应该有所有的道路点(边缘)的坐标,但我仍然知道只有顶点坐标ñ他们的连接是不够的,任何线索? – user383240 2010-07-05 12:18:32

相关问题