2016-11-22 82 views
1

我正在研究我的最後一年計算項目,並且需要一些建議/幫助,因爲我不是最自信的編碼員。使用dijktras算法(Java),從航點到航點的2個機場之間的最短路徑

該項目將創建一個軟件,它使用Dijkstra算法的實現來查找機場之間的最短路徑。該軟件將允許用戶在歐洲空域內的選定國家內輸入啓動機場和目的地機場。然後該軟件將繪製從航點到目的地機場的交互式地圖上的最短路徑,並且此外該路線將以文本打印出所有相關的空中導航信息。另外,不能輸入飛行區域,以便可以圍繞非飛行區域繪製路徑。

我想在java中這樣做,但我很困惑如何去做這個例如,我如何得到像谷歌地圖的地圖,然後如何將機場和航點作爲節點添加到圖上。

+0

它需要多準確?地球當然不是平坦的;直線距離可能會有數百英里。 –

+0

我將使用傳單映射並使用leafletRouting並使用html和JavaScript作爲webapp完成任務 – ViktorG

+0

它不一定非常準確,因爲我需要展示的是我可以正確實現算法。然而,我曾想過如何通過大圓路徑計算來補償地球曲率,所以我正在嘗試爲它找到api。 –

回答

5

正如您提到的Google地圖,我建議將此作爲使用HTML/CSS/JavaScript的網站。一切你需要把這種東西放在一起已經存在,而且這一切都是相對直接的。

在你需要採取的步驟而言,這將是大致如下:

1.獲取機場信息的列表中選擇所需

搜索查詢示例:「 JSON機場信息「

您至少需要他們的緯度,經度和機場代碼。快速搜索拉起這great looking project。過濾出你不想要的機場。將結果保存爲JSON,或者直接將結果保存爲use one that's JSON already

通過執行ajax請求將此信息添加到您的網頁 - 如果您是JavaScript新手,大多數人需要use jQuery for that

2.找出哪些地圖要使用

你可以使用谷歌地圖,但也有像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尋求該部分的幫助。或者研究如何爲您的目標車輛規劃路線並模擬該路線。

+0

這非常有用謝謝你,你已經爲我清除了很多東西。 –

+0

@AkshayPatel偉大的沒問題 - 如果它回答你的問題,請不要忘記標記它接受以便其他人知道:) –

+0

你好@LukeBriggs我想知道你是否可以再次幫助我? –

相關問題