我想製作一個應用程序,基本上就是谷歌地圖的室內場所,如商場或機場。我知道我必須從平面佈局圖創建一個圖形,並使用最短路徑查找算法來繪製從一個位置到另一個位置的最短路線。 我如何將圖形表示爲商場或機場?我是否將每個商店或大門作爲節點和走道作爲邊緣?或者我必須更具體一些,比如每隔5-10英尺做一個節點?我需要做些什麼以及我應該做什麼節點和邊緣?對於iPhone地圖應用程序,我該如何創建圖表?
回答
我建議將平面圖看作網格,其中每個網格代表x平方米。在位於可訪問區域內的每個單元上放置一個節點。邊緣位於每個相鄰單元之間,並且全部具有成本x。
這種方法的優點是,你可以有效地將它放在內存中(你可以把它放在矩陣中,而不必使用adiecency list或類似的東西)。對於尋路,你可以使用一個簡單的A *實現,它使用兩點之間的歐幾里得距離作爲啓發式。
這裏有幾個你想解決的問題。首先是兩地之間的結構關係,其次是幾何結構。最短路徑部分取決於幾何結構,部分取決於結構。例如。一條途徑不一定是直線。對於這個結構,你可以將商場的商店和大門表示爲節點,將路徑表示爲邊緣。將節點之間的實際距離作爲邊的「權重」,並使用Dijstra's algorihtm來查找最短路徑。
如果您只是需要像「轉到A,然後轉到B」那樣在文本上顯示結果,或者在地鐵(地下)風格的拓撲地圖上,這很好。但是,如果您想要以幾何精確的地面圖形顯示結果,則需要使結構和幾何體之間的連接更加牢固。我建議你增加上面描述的結構,在路徑轉彎處添加節點,並用x,y座標標記節點,以及是否爲中間節點的布爾值。只能選擇真正的節點作爲源和目的地,但將整個圖用於Dijkstra。在屏幕上繪製結果時,在最短路徑上遍歷節點,並使用它們的座標繪製從源到目標的分段直線。
您甚至可以在文本結果中使用這些增強節點,例如「轉到A,繼續x米,左轉並繼續y米到B」。 – 2012-05-27 21:25:40
- 1. 在iPhone應用程序中創建圖表和圖表?
- 2. 爲iPhone應用程序創建類圖
- 3. 地圖應用程序iphone
- 4. iPhone地圖應用程序
- 5. 我該如何整合谷歌地圖在我的iPhone應用程序
- 6. 如何爲我的城鎮創建基於地圖的應用程序?
- 7. 什麼SDK可用於爲iPad/iPhone創建離線地圖應用程序?
- 8. 對於交互式地圖應用程序的任何建議?
- 9. 創建API,用於iPhone應用程序
- 10. 我該如何在android應用程序中創建3D對象?
- 11. iPhone的iOS應該基於mapkit的應用程序看起來像iPhone原生地圖應用程序?
- 12. 如何爲iphone創建圖像應用程序?
- 13. 如何爲Windows Phone 8應用程序創建圖表/圖形?
- 14. 如何添加家庭地圖到我的iPhone應用程序?
- 15. 如何創建此類圖表?我應該使用什麼庫?
- 16. 使用gvNIX創建基於地圖的應用程序
- 17. 如何在我的頁面上創建對應於地圖上的Bing圖釘
- 18. 如何創建iPhone應用程序
- 19. 如何創建iPhone應用程序?
- 20. 如何爲iphone/ipad創建3D地圖
- 21. iPhone中的Google地圖應用程序
- 22. iphone 4.1中的地圖應用程序
- 23. iphone中的地圖應用程序
- 24. Iphone應用程序的離線地圖
- 25. Flex AS3 Iphone - 如何打開本地地圖應用程序?
- 26. 如何在基於視圖的應用程序中創建NavigationController?
- 27. xcode 4.5.2如何創建基於視圖的應用程序
- 28. 在android應用程序中創建我的地圖
- 29. 我如何在iphone編程中創建Cover Flow應用程序
- 30. 如何在iPhone中創建像Google地圖一樣的Google地圖圖表?
你如何顯示你的地圖? PDF,SVG,圖像或編程自己繪製它?你如何將你的圖應用於地圖,我的意思是你如何確定地圖上的頂點和邊? – Aft3rmath 2013-02-18 15:40:05