2013-05-09 45 views
1

如果您將Google地圖方向發送至您的Android手機,則可以在Maps應用程序中將其打開,這似乎非常合乎邏輯,背後的代碼也是如此。Android導航意圖

現在,一旦進入地圖應用程序,您就可以在導航應用程序中打開這些方向,並確定這些方向。

這是如何工作的?它不能是很難做到這一點,我知道有

"google.navigation:q=..." 

意圖,但在某些設備上,只用座標或地址......沒有地圖的方向這隻作品?

任何人都可以幫我解決這個問題嗎?

編輯:

這就是URL的樣子:

https://maps.google.com/maps?saddr=Durbanville,+Cape+Town,+Western+Cape,+South+Africa&daddr=Parow+North,+Cape+Town,+South+Africa+to:Somerset+West,+Cape+Town,+South+Africa+to:Milnerton,+Cape+Town,+South+Africa&hl=en&ll=-33.955037,18.657532&spn=0.25032,0.528374&sll=-33.911454,18.601913&sspn=0.250448,0.528374&geocode=FczB-_0dzIkcASlBKWkzGlfMHTFTuxOUSmpCAw%3BFQTi-v0d5oMbASld0qgMSFrMHTG2XqWY145Ttw%3BFfUG-P0dPHEfASk398T7ZbXNHTG5a6EH84n4Qg%3BFVU8-_0doEkaASnrz9UPVVnMHTFz2N4nnkA7XQ&oq=parow&mra=ls&t=m&z=12

回答

10

如果您創建的格式

http://maps.google.com/maps?saddr=[lat 1],[lon 1]&daddr=[lat 2],[lon 2] 

其中[LAT 1]的Web URL和[lon 1]是開始點的緯度和經度噸,並且同樣[LAT 2][LON 2]是結束點,並將其設置爲一個String,然後可以發送該一個intent

Intent navIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(navigationUrl)); 
activity.startActivity(navIntent); 

這將給用戶打開網絡瀏覽器的選項,谷歌地圖導航

編輯:

對於多個目的地添加以下到URL的末尾(對於每個額外的地方)

+to:[lat 3],[lon 3] 
根據需要

因此,對於4個目的地,你將有:

http://maps.google.com/maps?saddr=[lat 1],[lon 1]&daddr=[lat 2], 
    [lon 2]+to:[lat 3],[lon 3]+to:[lat 4],[lon 4] 
+0

我意識到這是可能的,但我有一個具有至少4個目的地的路線的地圖網址 – Schaemelhout 2013-05-09 10:39:23

+0

那麼你沒有在你的原始問題中指定...回答更新 – 2013-05-09 10:52:38

+0

謝謝,看我編輯的問題 – Schaemelhout 2013-05-09 10:56:37

0

上述以下的答案後,我發現自己在一個國家谷歌導航服務不可用。但導航意圖仍然可以與谷歌地圖通過此來完成:

Uri routeUri = Uri.parse("http://maps.google.com/maps?&saddr=" + 
           MyApplication.Lat + "," + 
           MyApplication.Lon + "&daddr=" + merchantAddr.getText()); 

Intent i = new Intent(Intent.ACTION_VIEW, routeUri); 
startActivity(i); 

看來,我們可以開始點中的地理位置與經/緯度,和終點設置爲一個地址,反之亦然。地理位置似乎轉換爲Google地圖中的地址或道路名稱。