0

アプリケーションにGoogleマップを使用しています。このガイドのGoogle自体の正確なコードを使用して、ItemizedOverlayを使用して地図上にマーカーを配置することができました。

しかし、ズームアウトすると、マーカーが少し左に移動します。サークル半径オーバーレイはそのままですが

これが私のアプリのスクリーンショットです:

ズームイン---------ズームアウト

実際のGoogleマップアプリでは発生しません。

ここに画像の説明を入力してください--------ここに画像の説明を入力してください

ハードコードされたジオポイントを使用してみましたが、マーカーがわずかに移動します誰かがこれの解決策を知っていますか?

ありがとう

[編集]

これが私の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);
4

1 に答える 1

0

この原因がboundCenterBottomItemizedOverlayコンストラクター内にあることがわかりました

に変更しましたboundCenterが、ズームアウトしてもそのまま残ります

public MyItemizedOverlay(Drawable marker) {
    super(boundCenter(marker));
}
于 2012-11-10T06:06:39.323 に答える