在 GoogleMaps (Android) 中缩放地图时位置错误

我正在 Android Studio 中实现地图,但是当我缩放标记时,它会转到错误的位置。

在 GoogleMaps (Android) 中缩放地图时位置错误

这是地图类,我创建了一个画布并在我转换成位图之后:

public class Mapsactivity extends Fragmentactivity implements OnmapReadyCallback {

    private GoogleMap mMap;
    private activityMapsBinding binding;
    private Bitmap bm;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        bm = createImageRounded(getapplicationContext(),80,"S");
        binding = activityMapsBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    @Override
    public void onmapReady(GoogleMap googleMap) {
        mMap = googleMap;

        ImageView imageView = (ImageView)findViewById(R.id.img);
        LatLng sydney = new LatLng(-33.8688,151.2093);
        MarkerOptions mrk = new MarkerOptions().title("Sydney");
        mrk.position(sydney);
        mrk.icon(BitmapDescriptorFactory.fromBitmap(bm));
        mrk.anchor(0.5f,1);

        mMap.addMarker(mrk);
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));

    }

    public static Bitmap createImageRounded(Context context,int width,int height,String name)
    {
        Bitmap output = Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(output);

        Paint paint = new Paint();
        paint.setColor(Color.rgb(62,176,220));
        paint.setStrokeWidth(10);
        paint.setStyle(Paint.Style.FILL);
        paint.setantiAlias(true);

        canvas.drawCircle(30,30,10,paint);

        return output;
    }

}

非常感谢您的帮助

zwl3074 回答:在 GoogleMaps (Android) 中缩放地图时位置错误

那是因为您绘制的图像小于标记边界 - 您正在创建 Bitmap 80x80 尺寸,但在其上绘制较小的圆(10 半径,不居中,尝试 canvas.drawCircle(width/2,height/2,Math.min(width,height)/2,paint);

你也设置错了anchor(不居中,尝试设置mrk.anchor(0.5f,0.5f);

本文链接:https://www.f2er.com/30310.html

大家都在问