Closed. This question needs to be more focused。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
                        
                        3年前关闭。
                                                                                            
                
        
我正在参加我的最后一年的计算机项目,由于我不是最自信的编码员,因此需要一些建议/帮助。

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

我正在考虑在Java中执行此操作,但是对于如何执行此操作感到困惑,例如,如何获取类似于Google Maps的地图,然后如何将机场和航路点作为节点添加到图形上。

最佳答案

就像您提到的Google Maps一样,我建议您使用HTML / CSS / JavaScript将其作为网站。将这种事情整合在一起所需的一切都已经存在,而且一切都相对简单。

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

1.获取所需的机场信息列表

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

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

通过提出ajax请求将此信息添加到您的网页-如果您不熟悉JavaScript,大多数人会use jQuery for that

2.找出您要使用的地图

您可以使用Google Maps,但是还有许多其他很棒的选项,例如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,避免需要自己实现。使用距离作为您的体重。

5.添加对禁飞区的支持

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

10-08 17:03