簡體   English   中英

我想創建一個Android應用程序,其中包含提供路線的地圖,但不包括Google地圖

[英]I want to make an Android app with a map that provides directions, but not Google Maps

我想制作一個Android應用程序來加載我在建築物內部創建的地圖。 我想讓它提供一個房間到另一個房間之間的路線。 如果可能的話,在樓層之間

我希望地圖可以縮放,也可以點擊。 即你可以點擊你所在的位置,以及你想去的地方,應用程序將提供指示。 或者您在文本框中輸入您所在的房間以及您想去的地方,並再次提供說明。

我偶然發現了允許您使用開源地圖並將自己的節點添加到每個角落或參考地點的內容。 但經過一個小時的Google搜索后,我再也找不到該網站了。

有誰知道我怎么能做到這一點?

這是其中一個實例,其中的想法聽起來很簡單但實際上並非如此。 您需要解決許多任務,有些已經討論過了。

1)如何塑造辦公室。 這需要完成,以便您可以輕松建模,但文件很小。 它必須采用您的路徑查找算法可以理解的格式。 這意味着在開發路徑查找時,您將對數據進行更改。

2)位置查找/輸入。 由硬件完成(gps不會削減它)或用戶說出它們的位置。 可以通過放置在辦公室周圍的NFC和標簽來完成,而不是理想的解決方案,標簽必須是可見的。 用戶可以輸入他們的位置,但他們可能會丟失,不知道他們在哪里。

3)如何呈現數據,你可以寫一個神奇的3D應用程序,顯示任務不可能的建築布局。 這將是六個月的自我工作! 請記住,您的地圖是3D,道路地圖往往是2D。 (有些飛過......)

4)進度跟蹤。 該應用程序真的需要知道你是如何做到這一點,如果你走了它會告訴你回去的路線。 這在室內很難實現。 進度跟蹤是PND(個人導航設備)制造商花費時間的一個領域,因為它真正影響用戶對軟件的信心。

在TomTom工作過,我可以說你可能會在這里工作多年。

由於這是一個拼貼項目,我可以建議一個更簡單的項目嗎?

使用2D地圖,簡單的基於網格的地圖,有點像迷宮問題中的經典鼠標。 為路徑查找實現A *。 完成后,如果您有時間延長原始計划,則可以。

我過去發現非常好的一本書是“通過實例編程游戲AI”。 ISBN 1-55622-078-2。 第8章是關於路徑查找的,並且在A *上有很好的部分。

祝好運。 :)

雖然這可能不是您正在尋找的答案:

您總是可以編寫一個執行此操作的應用程序。 如果您已經願意在地圖上定位節點,您可以假設編寫一個使用(主要使用的)游戲路徑算法的程序,例如A *,並從中找出路線。 這將是棘手的,但我認為通過放置節點和矢量映射它們與向量相關的成本(可能以英尺/米或類似的方式測量),您可能能夠用A *設置它。 ..

很難說。 我嘗試了一個快速的谷歌,也出現了空洞。

你可以創建一個MapActivity ,然后可以容納一個MapViewMapView不能嵌入到任何其他Activity中 ),這是一個誠實的善良交互式地圖,但它並不完全是全功能的。

MapView主要用於顯示特定區域的地圖,並在其上顯示自定義疊加層。 您可以設置地圖的焦點,縮放級別,是否顯示流量數據以及其他一些次要選項。 但除此之外,你必須構建自己路線的疊加層。 轉彎方向功能或任何東西都沒有轉彎。 它們只是“啞”的疊加。

Google DID最近更新了Google地圖應用,以包含室內地圖和導航。 他們提供了一個站點,您可以訪問並提交建築物的平面圖 ,因此可以將其添加到官方應用程序中。

一旦您的平面圖正式添加,您可以使用這樣的Intent啟動官方應用程序為您進行導航:

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345"));
startActivity(intent);

我在碩士項目期間遇到了同樣的問題。 但是,我的解決方案並不是很完整,但這就是我計划的方式。 由於各種限制,我無論如何都無法完全實現它。 這可能聽起來很復雜,但我不確定如何把它穿過。

  1. 靜態地存儲地圖而不是動態存儲 - 我的意思是,當有人想要從一個房間到另一個房間或從一個樓層到另一個房間時,圖片/照片會彈出。 動態路由有點困難。 手動存放圖片,以便彈出。

  2. 設計像Dijkstra算法那樣的最短路徑算法。 您將獲得用於執行此算法的現成java程序。 使用此功能,您可以獲取路線。 一旦地圖可用,使其可點擊並添加縮放選項應該不是一個大問題。

以某種方式結合這兩個步驟(對不起,這里沒有代碼'因為我自己無法想出一個)。 正如理查德在上面所說,我在腦海中實現了它(我的整個項目都基於此)。 NFC基本上是RFID技術,因此是無線的。 您可以使用802.11 b / g / n來實現它的網絡端。 如果您需要更多幫助,請告訴我。 將盡我所能幫助。

祝一切順利。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM