2010-09-16 15 views
3

這位教授給了我們一個分配,以便在接下來的幾個月內完成,我們必須編寫一個基本上是建築物樓層映射系統的web應用程序。就像谷歌地圖的一個非常簡單的版本一樣,人們需要能夠查找一個房間,並能夠從地板的一部分到另一部分獲取指示。我從來沒有做過任何主要的網絡編程,甚至不知道如何開始。是否有我可以使用的Google Maps或Mapquest API,或者是否必須從頭開始?我並沒有要求任何人爲我解決這個問題,只是將我推向正確的方向,以便從何處着手。關於網絡編程的問題,地圖需要具體說明

+1

我不認爲谷歌地圖API或Mapquest服務將幫助你很多關於路由。他們只能使用自己的街道數據庫。 – LarsH 2010-09-16 22:46:30

+0

對於你有什麼問題,你可以更具體些嗎?製作一個網絡界面?實現尋路算法? – 2010-09-16 22:48:09

+0

我從來沒有做過任何主要的網絡編程,我不知道如何構建地圖的物理接口。我希望谷歌地圖有一個API允許我從地圖的地圖中添加信息,以便爲我構建和構建地圖。 – MapStress 2010-09-16 23:16:17

回答

2

我建議任務的思想爲三個部分:

  1. 顯示地圖 (可能,最佳的效率, 懶洋洋地加載瓷磚像谷歌地圖 一樣)
  2. 的圖像代表房間和他們之間的連接 作爲graph。使用圖形 讓您輕鬆使用 證據充分的算法類似 A*Dijkstra's找到 從A點到 點B.
  3. 最短的路線從點擊轉換圖像 到一個節點上圖表,並從圖上的 節點到 圖像中的點。可能每個節點應該只存儲一對(x,y) 座標。

有了這樣的安排,所有的代碼所要做的就是:

The first time the user clicks 
{ 
    Identify the nearest node to their click as node A; 
} 
The second time the user clicks 
{ 
    Identify the nearest node to their click as node B; 
    Use Dijkstras Algorithm or A* to find the shortest route from node A to node B; 
    For each edge in the resulting route 
    { 
    Add a line to the image of the map; 
    } 
    Mark node A with a green dot and node B with a red dot (or something); 
} 
+0

喬恩釘了這個。你的問題,正如原來的要求,寫給我們的是「哦,我的上帝,幫助!」將問題分爲多個部分,並提出更有針對性的問題。 – 2010-09-17 14:25:55