我正在为我的应用程序使用Google Map。使用this guide from Google itself中的确切代码,我设法使用ItemizedOverlay在地图上放置了一个标记。
但是当我缩小时,标记会稍微向左移动。 Circle Radius Overlay保留在原位
以下是我的应用的简介:
{--------- {0}}
在真正的Google地图应用中不会发生这种情况:
{---- {0}}
我尝试使用硬编码的Geo点,但标记仍然略微移动。有人知道这个的解决方案吗?
由于
[编辑]
这是我的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 :(得分:0)
刚刚发现ItemizedOverlay构造函数
中的原因是boundCenterBottom
我将其更改为boundCenter
并在缩小后保持原位
public MyItemizedOverlay(Drawable marker) {
super(boundCenter(marker));
}