2017-01-03 51 views
0

這是我當前的代碼,我推出谷歌地圖(瀏覽器版本):從另一個應用程序啓動谷歌地圖 - 如何爲「目標」設置一個值?

 mGoogleMapsAppButton.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      Float sourceLatitude =65.9667f; 
      Float sourceLongitude = -18.5333f; 
      Float destinationLatitude = 60.4443f; 
      Float destinationLongitude = -18.4444f; 
      try { 
       String uri = String.format(Locale.ENGLISH, "http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f", 
         sourceLatitude, sourceLongitude, destinationLatitude, destinationLongitude); 
       Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); 
       startActivity(intent); 
      } 
      catch(ActivityNotFoundException e){ 
       Toast.makeText(MapsActivity.this, e.toString(), Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 

我嘗試推出谷歌地圖通過應用程序版本,但我對如何設置緯度/不確定長期的目標,所以我想出了這個未完成的代碼:

String uri = String.format(Locale.ENGLISH, "geo:%f,%f", latitude, longitude); 
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); 
startActivity(intent); 

似乎無法找到的文檔什麼的,我一定是盲目的;有關如何做到這一點的任何想法?

獎勵問題,如果在Genymotion(模擬器)中啓動此代碼不起作用,因爲它會拋出一個ActivityNotFoundException,對此的任何修復建議將不勝感激!

+0

https://developer.android.com/guide/components/intents-common.html#Maps可能的幫助。你想在瀏覽器或用戶的默認地圖應用程序中啓動地圖嗎? – Lyla

+0

Genymotion可能缺少默認地圖應用程序,因爲它默認沒有安裝GooglePlay。以下是一些說明:https://github.com/codepath/android_guides/wiki/Genymotion-2.0-Emulators-with-Google-Play-support或者您可以在Android Studio中使用默認模擬器,無需使用Genymotion,確保已安裝Google Play服務 – Lyla

+0

我想在用戶的默認地圖中啓動它;實際上,我查看了上面的文檔,似乎無法找到任何關於「目的地」的信息。幫助我找到更多關於它的信息? –

回答

0

嘗試使用URI字符串與此。 (設定目標)

http://maps.google.com/?daddr=28.5783992,77.3124742 
0

這個工作對我來說

  Intent intent = new Intent(Intent.ACTION_VIEW, 
        Uri.parse("http://maps.google.com/maps?saddr="+sourceLatitude +","+sourceLongitude 
          +"&daddr="+destinationLatitude+","+destinationLongitude)); 
      intent.setFlags(FLAG_ACTIVITY_NEW_TASK); 
      startActivity(intent); 
相關問題