Android 地图上标记的定位不正确。地图上标记的奇怪行为

Android 地图上标记的定位不正确。地图上标记的奇怪行为,android,osmdroid,Android,Osmdroid,我和OSMdroid一起工作。我扩展了Overlay类,并根据需要重写了draw方法。我在放置标记时遇到了问题。当我第一次显示它们时,它们的位置错误。但当我开始缩放时,它们会移动,经过几次缩放后,它们有了正确的定位 这是我的密码: protected final Rect mRect = new Rect(); protected Point mScreenPts = new Point(); @Override protected void draw(Canvas c, MapView os

我和OSMdroid一起工作。我扩展了Overlay类,并根据需要重写了draw方法。我在放置标记时遇到了问题。当我第一次显示它们时,它们的位置错误。但当我开始缩放时,它们会移动,经过几次缩放后,它们有了正确的定位

这是我的密码:

protected final Rect mRect = new Rect();
protected Point mScreenPts = new Point();

@Override
protected void draw(Canvas c, MapView osmv, boolean shadow) {
    Projection pj = osmv.getProjection();

    synchronized (mInternalItemList) {
        if (shadow && !mInternalItemList.isEmpty()) {
            for(int i = 0; i < mInternalItemList.size(); i++) {
            CustomizedItem customized = mInternalItemList.get(i);

                pj.toMapPixels(new GeoPoint(customized.getLatitude(),
                                customized.getLongitude()), mScreenPts);            

                boundToHotspot(customized.getDrawable(), HotspotPlace.LOWER_LEFT_CORNER);

                Drawable draw = customized.getDrawable();

                draw.copyBounds(mRect);
                draw.setBounds(mRect.left + mScreenPts.x, mRect.top + mScreenPts.y, 
                           mRect.right + mScreenPts.x, mRect.bottom + mScreenPts.y);

                draw.draw(c);
                draw.setBounds(mRect);
            }
        }
    }
}
protectedfinal Rect mRect=new Rect();
保护点mScreenPts=新点();
@凌驾
受保护的空心绘制(画布c、MapView osmv、布尔阴影){
Projection pj=osmv.getProjection();
已同步(mInternalItemList){
if(shadow&!mInternalItemList.isEmpty()){
对于(int i=0;i
maps v1不再受支持,您应该尝试使用maps v2Maps v1在osmdroid中仍然受支持。我使用osmdroid 3.0.10,如何处理此问题?尝试使用ItemizedConoverlay并查看OpenStreetMapViewer示例项目。