マップにマークを追加しましたが、ズームインすると左に移動し (最大ズームインでは正しい場所をマークします)、ズームアウトすると右に移動します (最大ズームアウトでは 3000Km のようにマークされます)。適切な場所)。
onCreate の前にマーカーを描画するクラスは次のとおりです (画像は 62px wx 70px h):
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();
どうしたの?ズームが変わるたびに正しいポイントに移動するにはどうすればよいですか?
前もって感謝します!