2012-09-26 60 views

回答

5

這是一個代碼塊的工作,我在我的應用程序之一使用。此代碼還包含一項檢查,以確定用戶是否在他/她的設備上安裝了Google地圖。如果支票返回應用程序安裝,那麼該功能將數據傳遞給應用程序。如果檢查失敗,它將顯示一個AlertDialog,通知用戶應用程序未安裝。

protected void showMap() { 

    boolean installedMaps = false; 

    // CHECK IF GOOGLE MAPS IS INSTALLED 
    PackageManager pkManager = getPackageManager(); 
    try { 
     @SuppressWarnings("unused") 
     PackageInfo pkInfo = pkManager.getPackageInfo("com.google.android.apps.maps", 0); 
     installedMaps = true; 
    } catch (Exception e) { 
     e.printStackTrace(); 
     installedMaps = false; 
    } 

    // SHOW THE MAP USING CO-ORDINATES FROM THE CHECKIN 
    if (installedMaps == true) { 
     String geoCode = "geo:0,0?q=" + PLACE_LATITUDE + "," 
       + PLACE_LONGITUDE + "(" + PLACE_NAME + ")"; 
     Intent sendLocationToMap = new Intent(Intent.ACTION_VIEW, 
       Uri.parse(geoCode)); 
     startActivity(sendLocationToMap); 
    } else if (installedMaps == false) { 

     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
       CheckinsDetails.this); 

     // SET THE ICON 
     alertDialogBuilder.setIcon(R.drawable.ic_launcher); 

     // SET THE TITLE 
     alertDialogBuilder.setTitle("Google Maps Not Found"); 

     // SET THE MESSAGE 
     alertDialogBuilder 
       .setMessage(R.string.noMapsInstalled) 
       .setCancelable(false) 
       .setNeutralButton("Got It", 
         new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, 
            int id) { 
           dialog.dismiss(); 
          } 
         }); 

     // CREATE THE ALERT DIALOG 
     AlertDialog alertDialog = alertDialogBuilder.create(); 

     // SHOW THE ALERT DIALOG 
     alertDialog.show(); 
    } 
} 

下面提到的這行代碼發送給谷歌地圖和而不是顯示剛剛引腳還顯示位置名稱。

String geoCode = "geo:0,0?q=" + PLACE_LATITUDE + "," 
        + PLACE_LONGITUDE + "(" + PLACE_NAME + ")"; 

編輯:如果你不希望顯示的PLACE_NAME,修改特別符合:geo:latitude,longitude而不是在代碼塊中使用的一個。

檢查此鏈接可能需要進一步的組合,如變焦例如:http://developer.android.com/guide/appendix/g-app-intents.html

+0

thnks sidhharth ....它工作.... –

+0

@PrashantRane:很高興有幫助。 :-) –

0
Double latitud = 37.40*1E6; 
      Double longitud = -5.99*1E6; 

      GeoPoint loc = 
       new GeoPoint(latitud.intValue(), longitud.intValue()); 

      controlMapa.animateTo(loc); 

      int zoomActual = mapa.getZoomLevel(); 

      for(int i=zoomActual; i<10; i++) 
       controlMapa.zoomIn(); 
     } 

其中

controlMapa = mapa.getController(); 

     mapa = (MapView)findViewById(R.id.linearLayout1); 

欲瞭解更多信息:MapView Tutorial

+0

我沒有代碼,用於顯示地圖,而是要共同座標發送到現有的地圖應用程序,我們得到埃夫裏的Android手機.... –

+0

¬¬'是的,我知道.... controlMapa.animateTo(loc);當祿是位置....它是相同的代碼比@Siddharth樂樂,但更簡單的方法...由你決定...... –

+0

MyLocationOverlay <--- –

0

試試這個:

String url = "http://maps.google.com/maps?daddr="+ ze.getCoordenada().getLatitude() + ","+  ze.getCoordenada().getLongitude(); 
Intent goZe = new Intent(Intent.ACTION_VIEW); 
goZe.setData(Uri.parse(url)); 
startActivity(goZe); 

你會得到一個提示,使用瀏覽器或地圖

0

不知何故,在谷歌上使用此字符串

String url = "http://maps.google.com/maps?daddr="+ ze.getCoordenada().getLatitude() + ","+  ze.getCoordenada().getLongitude(); 

雖然選擇谷歌地圖顯示oposite經度和緯度,而網站是正確的。

也許我使用的是舊版本的谷歌地圖的

0
public void showMap(long latitude, long longitude) { 
    String geoCode = "geo:0,0?q=" + latitude + "," 
         + longitude; 
    Intent sendLocationToMap = new Intent(Intent.ACTION_VIEW, Uri.parse(geoCode)); 
    if (sendLocationToMap.resolveActivity(getPackageManager())!=null){ 
     startActivity(sendLocationToMap); 
    } 
    else { 
     Toast.makeText(this,"No Application To handle the Request",Toast.LENGTH_SHORT).show(); 
    } 
} 
+0

你的第一行應該被格式化爲代碼。 – ImaginaryHuman072889

相關問題