2012-05-30 34 views
0

我在地图上添加了一个标记,但放大后会左移(最大放大时标记为正确的位置),当缩小时它会向右移动(最大的缩小距离正确的地方3000Km)。缩放时Google地图的标记会移动

下面是绘制标记物的onCreate之前(图像是62px WX 70像素八)类:

class MapOverlay extends com.google.android.maps.Overlay 
    { 
     @Override 
     public boolean draw(Canvas canvas, MapView map, boolean shadow, long when) 
     { 
      super.draw(canvas, map, shadow);     

      Point screenPts = new Point(); 
      map.getProjection().toPixels(point, screenPts); 

      Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.mapmarker);    
      canvas.drawBitmap(bmp, screenPts.x + 50, screenPts.y - 70, null);   
      return true; 
     } 
    } 

这里是我用来调用类的代码:

 latitud = loc.getLatitude(); 
      longitud = loc.getLongitude(); 
      precision = loc.getAccuracy(); 

     controlMapa = map.getController(); 
     point = new GeoPoint((int) (latitud * 1E6), (int) (longitud * 1E6)); 

     controlMapa.animateTo(point); 
     controlMapa.setZoom(17); 

     MapOverlay mapOverlay = new MapOverlay(); 
     List<Overlay> listOfOverlays = map.getOverlays(); 
     listOfOverlays.clear(); 
     listOfOverlays.add(mapOverlay); 

     map.invalidate(); 

什么问题?每次缩放变化时,我怎样才能让它们移动到正确的位置?

预先感谢您!

回答

1

解决!我不得不补充:的

canvas.drawBitmap(bmp, screenPts.x - (bmp.getWidth()/2), screenPts.y - bmp.getHeight(), new Paint()); 

代替:

canvas.drawBitmap(bmp, screenPts.x + 50, screenPts.y - 70, null); 
相关问题