2013-02-22 117 views
2

我有一個應用程序,顯示帶有標記的地圖。當用戶觸摸標記時,我想爲它們開始導航。Android谷歌地圖API v2開始導航

是否有意向/活動,我可以傳遞經度和緯度並啓動用戶導航應用程序?

感謝您的任何幫助。

+0

它似乎有http://stackoverflow.com/questions/13255192/android-google-navigation-intent-modes – 2013-02-22 16:07:14

回答

6

我是這樣解決的。發佈的網址類似。

Intent navigation = new Intent(
      Intent.ACTION_VIEW, 
      Uri.parse("http://maps.google.com/maps?saddr=START_LAT,START_LON&daddr=END_LAT,END_LON")); 
startActivity(navigation); 

從哪裏開始是START_LON和START_LAT是經度和緯度和END_LON,END_LAT是結束

+0

意圖導航igation = new Intent(Intent.ACTION_VIEW,Uri.parse(「http://maps.google.com/maps?saddr=START_LON,START_LAT&daddr=END_LON,END_LAT」)); \t \t \t \t startActivity(navigation); – 2013-03-21 06:57:29

+3

而順序應該是LATITUDE,LONGITUDE而不是其他方式。 – 2013-03-21 07:30:01

1

這工作正常:

googleMap.setMyLocationEnabled(true); 

    LocationManager locManager = (LocationManager) getSystemService(LOCATION_SERVICE); 
    Criteria cri = new Criteria(); 
    bestProvider = locManager.getBestProvider(cri, true); 

    Location loc = locManager.getLastKnownLocation(bestProvider); 
    String latMy = String.valueOf(loc.getLatitude()); 
    String lngMy = String.valueOf(loc.getLongitude()); 

    Toast.makeText(this, "Navigation", Toast.LENGTH_SHORT).show(); 
    String url = "http://maps.google.com/maps?saddr=" + latMy + "," 
      + lngMy + "&daddr=" + "18.7703500,19.4534500"; 

    Intent navigation = new Intent(Intent.ACTION_VIEW); 
    navigation.setData(Uri.parse(url)); 

    startActivity(navigation); 
0

用途:

Uri gmmIntentUri = Uri.parse("google.navigation:q="+"18.7703500,19.4534500"); 
       Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); 
       mapIntent.setPackage("com.google.android.apps.maps"); 
       startActivity(mapIntent);