2013-03-05 66 views
1

我試圖實現這樣的功能,當用戶在文本字段中輸入地址並單擊按鈕時,應該將該地址複製到Google地圖的目標字段中,並且用戶位置應該被設置爲「我的位置」(他的當前位置)。Android中的Google地圖API

+6

獲得設備/用戶當前的位置哪裏是你的代碼? – yarian 2013-03-05 07:11:47

回答

2

爲了在Google地圖上顯示路線,只需調用傳遞當前和目的地經緯度的意圖。如果不知道經緯度,您也可以在任何情況下通過地址。這樣做後,其Google Map的作業顯示位置。你也可以顯示街景。

在下面的代碼中,有三個參數:current_lat, current_longi, dest_address

final Intent intent = new Intent(Intent.ACTION_VIEW, 
Uri.parse("http://maps.google.com/maps?" 
+ "saddr="+ current_lat+","+current_longi + "&daddr="+dest_address)); 

intent.setClassName("com.google.android.apps.maps","com.google.android.maps.MapsActivity"); 

startActivity(intent); 

如果有當前地址和目的地址,那麼你可以這樣寫:

Uri.parse("http://maps.google.com/maps?" 
+ "saddr="+curr_address+ "&daddr="+dest_address)); 

如果有當前和目的地緯度和經度都可以這樣寫:

Uri.parse("http://maps.google.com/maps?" 
+ "saddr="+ current_lat+","+current_longi + "&daddr="+ destt_lat+","+dest_longi )); 

當你打電話給這個意圖時,Google Map會顯示選擇是通過巴士還是步行來畫路線。

4

您可以按以下方式打開谷歌地圖:

String CURRENT_LOCATION = "current_location_latitude, current_location_longitude"; 
String DESTINATION_LOCATION = "address_from_your_text_view"; 

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("http://maps.google.com/maps?saddr="+ CURRENT_LOCATION +" daddr="+DESTINATION_LOCATION)); 
startActivity(intent); 

注意:您應該的LocationManager

+0

它像一個魅力工作!堆棧溢出不會讓我給你一個加1.我只能說是謝謝你! :) – 2013-03-05 08:59:04

+0

如果在back_press上,我不想顯示上方的地圖選項(與地圖,本地等...), 而是我需要顯示以前的活動從哪裏被稱爲? – 2013-03-05 09:57:13

+0

如果您通過意向從您的應用程序/活動啓動Google地圖應用程序,則您無法控制後退按鍵 – 2013-03-05 11:22:17