2012-11-23 96 views
0

我有以下代碼,但覆蓋圖似乎並未在地圖上可見,但焦點位於所需的地理點上。 這裏是代碼:向mapview添加覆蓋圖(初學者)

public void setOverlay() 
{ 
    MapView mapView = (MapView)findViewById(R.id.mapview); 
    mapView.getController().setCenter(place.getGeoPoint()); 
    List<Overlay> mapOverlays = mapView.getOverlays(); 
    Drawable drawable = this.getResources().getDrawable(R.drawable.ic_launcher); 
    MyItemizedOverlay itemizedOverlay = new MyItemizedOverlay(drawable); 
    OverlayItem overlayitem = new OverlayItem(place.getGeoPoint(), "Hola, Mundo!", "I'm in Mexico City!"); 
    itemizedOverlay.addOverlay(overlayitem); 
    mapOverlays.add(itemizedOverlay); 


} 

這裏有什麼問題?

回答

0

你需要調用:

mapView.invalidate(); 

要強制覆蓋的重繪將它們添加到MapView後。將上面的行添加到您的方法的底部,它應該工作(我假設您的圖標不完全透明:-),在這種情況下,你將不會看到它)

問候。

+0

呃,它還沒有工作。我會稍後嘗試修復它,這很奇怪。 – idish

+0

上面的代碼看起來很好。如果沒有出現,請檢查以下內容:1 - 您確實在調用'setOverlay()'和'place'具有正確的值。地圖總是從最後使用的位置開始,你可能會認爲它是正確的中心。 2 - 檢查MyItemizedOverlay類。 – Luis