2012-11-10 17 views
0

我正在使用Google Map作爲我的應用程序。使用this guide from Google itself中的確切代碼,我使用ItemizedOverlay設法在地圖上放置了一個標記。MapView標記在縮小時略微移動

但是當我縮小時,標記稍微向左移動。圓的半徑重疊留在地方,儘管

這裏是我的應用程序的screenshoot:

Zoomed in --------- Zoomed out

它不會在真正的谷歌地圖應用程序發生:

enter image description here ---- enter image description here

使用硬編碼地理位置點試過,但所述標記仍然略微中號oves。有人知道這個解決方案嗎?

感謝

[編輯]

這裏是我的ItemizedOverlay類

public class MyItemizedOverlay extends ItemizedOverlay { 
    private ArrayList<OverlayItem> overlays = new ArrayList<OverlayItem>(); 
    Context context; 

    public MyItemizedOverlay(Drawable marker) { 
     super(boundCenterBottom(marker)); 
    } 

    public MyItemizedOverlay(Drawable marker, Context context) { 
     super(boundCenterBottom(marker)); 
     context = context; 
    } 

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

    @Override 
    protected OverlayItem createItem(int i) { 
     return g_overlays.get(i); 
    } 

    @Override 
    public int size() { 
     return overlays.size(); 
    } 

    protected boolean onTap(int i) { 
     //... 
    } 
} 

,這裏是調用上面的類

List<Overlay> mapOverlays = mapView.getOverlays(); 
Drawable drawable = this.getResources().getDrawable(R.drawable.map_pin); 
MyItemizedOverlay mio = new MyItemizedOverlay(drawable, this); 
OverlayItem oi = new OverlayItem(mGeoPoint, "Your location", ""); 
mio.addOverlay(oi); 
mapOverlays.add(mio); 

回答

0

剛剛發現的代碼原因是boundCenterBottom ItemizedOverlay構造函數中

我把它改成boundCenter並縮小

public MyItemizedOverlay(Drawable marker) { 
    super(boundCenter(marker)); 
} 
後留在地方