2010-10-20 184 views
1

我有開發應用程序與谷歌地圖。我遵循材料從Android開發人員網站和一些其他指導方針。文我運行該程序的圖標只指向的位置.in背景沒有地圖視圖顯示任何人都可以幫我嗎?谷歌地圖不顯示在我的Android應用程序

在此先感謝 Registers Lakshmanan。

這裏是我的源代碼,

公共類MapPage擴展MapActivity
{

MapView mapView; 
MapController mc; 
GeoPoint p; 





@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    mapView = (MapView) findViewById(R.id.mapview); 
    mapView.setBuiltInZoomControls(true); 

    List<Overlay> mapOverlays = mapView.getOverlays(); 
    Drawable drawable = this.getResources().getDrawable(R.drawable.icon); 
    HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable); 
    GeoPoint point = new GeoPoint(19240000,-99120000); 
    OverlayItem overlayitem = new OverlayItem(point, "Hola, Mundo!", "I'm in Mexico City!"); 
    itemizedoverlay.addOverlay(overlayitem); 
    mapOverlays.add(itemizedoverlay); 
    mc = mapView.getController(); 
    String coordinates[] = {"1.352566007", "103.78921587"}; 
    double lat = Double.parseDouble(coordinates[0]); 
    double lng = Double.parseDouble(coordinates[1]); 

    p = new GeoPoint(
     (int) (lat * 1E6), 
     (int) (lng * 1E6)); 

    mc.animateTo(p); 
    mc.setZoom(1); 
    mapView.invalidate(); 



} 
@Override 
protected boolean isRouteDisplayed() { 
    return false; 
} 

} 





java class : 



public class HelloItemizedOverlay extends ItemizedOverlay 
{ 
    Context mContext; 
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>(); 
public HelloItemizedOverlay(Drawable defaultMarker) { 
    super(boundCenterBottom(defaultMarker)); 
    // TODO Auto-generated constructor stub 
} 
public HelloItemizedOverlay(Drawable defaultMarker, Context context) { 
    super(defaultMarker); 
    mContext = context; 
    } 

@Override 
protected boolean onTap(int index) { 
    OverlayItem item = mOverlays.get(index); 
    AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); 
    dialog.setTitle(item.getTitle()); 
    dialog.setMessage(item.getSnippet()); 

    dialog.show(); 
    return true; 
} 
@Override 
protected OverlayItem createItem(int i) { 
    // TODO Auto-generated method stub 
    return mOverlays.get(i); 

} 

@Override 
public int size() { 
    // TODO Auto-generated method stub 
    return mOverlays.size(); 

} 
public void addOverlay(OverlayItem overlay) { 
    mOverlays.add(overlay); 
    populate(); 
} 

} 
+0

@Lakshamanan我會建議使用多個代碼塊重新格式化你的問題並鏈接到網絡服務器上的附件。這是很難閱讀的。你的佈局xml文件也會幫助 – 2010-10-20 04:54:09

回答

2

我懷疑你是不是指定了正確的谷歌地圖的關鍵。您需要指定爲您簽署應用程序的密鑰庫生成的Google地圖密鑰。

我看不到在代碼中設置的鍵(如果要從xml佈局構建MapView,則需要將其設置在MapView的構造函數中或使用屬性android:apiKey)。如果你不這樣做,通常最後會出現一個灰色屏幕,覆蓋圖,然後在左下角顯示一個Google水印,我猜你正在獲取。 以下是獲取地圖關鍵字的鏈接。 Sign Up for the Android Maps Api

+0

hin謝謝你的答覆。我在我的xml文件中包含了API key,但我仍然得到相同的輸出。 – Lakshmanan 2010-10-20 10:30:59

+0

感謝您的評論,Ihad將api密鑰包含在xml文件中,但獲得相同的輸出。 – Lakshmanan 2010-10-20 10:34:59

+0

我是這個網站的新手,我不知道如何包含links.let,我知道如何包含這個鏈接.. – Lakshmanan 2010-10-20 10:37:27

1

我也認爲你需要包含Maps API密鑰。我更喜歡一個單獨的map.xml內包含:

<?xml version="1.0" encoding="utf-8"?> 

<!-- The Api Key needs to be replaced corresponding to the signing certificate. 
    Check this site for more info: 
    http://code.google.com/intl/ko/android/maps-api-signup.html --> 
<com.google.android.maps.MapView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/myMap" 
    android:layout_width="wrap_content" android:layout_height="wrap_content" 
    android:enabled="true" android:clickable="true" 
    android:apiKey="@+string/maps_api_key" /> 

然後我包括我的任何地圖視圖這個文件是這樣的:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/myMapView" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <include layout="@layout/map" /> 
</RelativeLayout> 
+0

謝謝,我的xml文件中包含了api密鑰,但仍然保持一致輸出。 – Lakshmanan 2010-10-20 10:32:37

+0

請確保使用正確的工具提取您的密鑰指紋,如http://code.google.com/intl/ko/android/maps-api-signup.html所述 – keyboardsurfer 2010-10-20 10:54:44

相關問題