2012-10-24 13 views
21

地圖意向書不具有特定縮放級別的工作以及自定義標記Android的 - 如何啓動谷歌地圖意圖在Android應用程序有一定的位置,縮放級別和標記

float lat = 40.714728f; 
    float lng = -73.998672f; 

    String maplLabel = "ABC Label"; 
    final Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
      Uri.parse("geo:0,0?q="+lat+","+lng+"&z=16 (" + maplLabel + ")")); 
    startActivity(intent); 

任何人都知道什麼是錯的?或者如何做? 我想用特定縮放級別的自定義標籤標記來顯示某些(lat,lng)的地圖。

+0

經過測試,它工作正常..你確定你沒有離開startActivity在你的實際代碼中註釋掉了嗎? – dymmeh

+0

對不起,我的錯誤,我忘了在這篇文章中取消註釋。我測試了它,它顯示無法加載URL。你是怎麼做到的? – umirza47

+0

我想用標記在縮放級別16上顯示此位置,它適用於位置和標記,但是當我應用z參數時,它根本不會工作 – umirza47

回答

73

請嘗試以下解決方案:

double latitude = 40.714728; 
double longitude = -73.998672; 
String label = "ABC Label"; 
String uriBegin = "geo:" + latitude + "," + longitude; 
String query = latitude + "," + longitude + "(" + label + ")"; 
String encodedQuery = Uri.encode(query); 
String uriString = uriBegin + "?q=" + encodedQuery + "&z=16"; 
Uri uri = Uri.parse(uriString); 
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri); 
startActivity(intent); 

幸得此:Answer

我相信這個問題曾與您的標籤的空間做。編碼查詢字符串將通過地圖應用程序與有效字符代替空格

+3

是否可以傳遞兩個標記參數? – Arun

+0

當從地圖應用程序按下按鈕時,顯示黑屏並重新創建底層活動。任何想法如何解決這個問題? – Jas

+0

@dymmeh這個答案現在是4歲。我現在無法得到這個工作。我發佈了一個新的[question](http://stackoverflow.com/q/41131414/7292819),但除了有人說從Maps 7.x開始無法使用這個功能之外,還沒有吸引太多興趣。你知道任何有關地圖變化或其他原因,現在可能無法正常工作嗎? – Gary99

1

顯示位置消除此問題:

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
String data = String.format("geo:%s,%s", latitude, longitude); 
if (zoomLevel != null) { 
    data = String.format("%s?z=%s", data, zoomLevel); 
} 
intent.setData(Uri.parse(data)); 
startActivity(intent); 
+0

當從地圖應用程序按下按鈕時,顯示黑屏並重新創建基礎活動。任何想法如何解決這個問題? – Jas

+0

你會發生什麼@ jas? – Recomer

1
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?daddr=" + location.getLatitude() + "," + location.getLongitude())); 
startActivity(intent); 
相關問題