使用dijktras算法(Java)从航点到航点的2个机场之间的最短路径

时间:2016-11-22 00:45:24

标签: java dijkstra

我正在研究我的最后一年计算项目并需要一些建议/帮助,因为我不是最自信的程序员。

该项目将创建一个软件,该软件使用Dijkstra算法的实现来查找机场之间的最短路径。该软件将允许用户在欧洲空域内的选定国家内输入起始机场和目的地机场。然后,软件将在从航路点到航路点到目的地机场的交互式地图上绘制最短路径,此外,路线将以文本打印出所有相关的空中导航信息。此外,不能输入飞行区域,以便可以在禁飞区周围绘制路径。

我正在考虑在java中这样做,但我很担心如何去做这个,例如,我如何获得谷歌地图的地图,然后如何将机场和航点作为节点添加到图表上。 / p>

1 个答案:

答案 0 :(得分:5)

正如您所提到的Google地图,我建议您将其设为使用HTML / CSS / JavaScript的网站。把这种东西拉到一起所需的一切都已经存在,而且这一切都是相对直接的。

就您需要采取的步骤而言,大致如下:

<强> 1。获取您想要的机场信息列表

搜索查询示例:“JSON机场信息”

您至少需要他们的纬度,经度和机场代码。快速搜索了great looking project。过滤掉您不想要的机场。将结果保存为JSON,或直接use one that's JSON already

通过执行ajax请求将此信息添加到您的网页 - 如果您是JavaScript新手,大多数人use jQuery for that

<强> 2。找出您要使用的地图

您可以使用Google地图,但还有许多其他精彩选项,例如OpenLayers或基于它的任何内容,例如MapBox。我将引用OpenLayers,因为它既是免费的又是一个非常容易开始的项目。将其嵌入您的网站,然后get to know its API。这些API很容易理解,它们提供了很多关于如何显示线条和标记的例子(对于实际的机场)。

第3。显示您的机场

使用地图的API和您的JSON数据,将markers放在地图上,但是您想要显示它。有examples for flights too。这同样适用于您的禁飞区;这些地图API允许您display areas too

<强> 4。执行您的Dijkstra路由

范围广泛graph libraries for JavaScript。如果您不能使用库,您至少可以使用它们来获取灵感。将您的机场信息与适合您的图表库一起使用,以执行您需要的搜索。找到correct grand-circle distance can also be done with the map API,避免需要自己实现。使用距离作为你的dijkstra权重。

<强> 5。添加对禁飞区的支持

这部分问题有点模糊,因为这里有很多选项,例如禁飞区的高度不同,车速影响路线的规划方式。例如,它取决于车辆是小型无人机还是商用飞机。一个简单的方法是删除任何与禁飞区相交的路线;快速搜索this answer以获得该部分的帮助。或者研究如何为目标车辆规划路线并模仿它。