自定义地图标记在 android 中放大或缩小地图时更改其位置

Custom map marker change its postition when zoom in or out the map in android

我制作了一个自定义标记,它在加载地图时完美无缺,但我的问题是当我放大或缩小地图时,标记改变了它的位置,而且当我点击标记信息时 window出现在另一个位置(不在其顶部),我的代码如下,我找不到解决方案或想法我做错了什么,请救救我。 代码

private void plotMarkers(ArrayList<MyMarker> markers) {
    if (markers.size() > 0) {
        for (MyMarker myMarker : markers) {
            System.out.println("================rounded bitmaps==========="
                    + roundedBitmaps.toString());
            // Create user marker with custom icon and other options
            MarkerOptions markerOption = new MarkerOptions()
                    .position(new LatLng(myMarker.getmLatitude(), myMarker
                            .getmLongitude()));

            markerOption.icon(BitmapDescriptorFactory.fromBitmap(myMarker
                    .getImgURL()));

            CameraPosition cameraPosition = new CameraPosition.Builder()
                    .target(new LatLng(myMarker.getmLatitude(), myMarker
                            .getmLongitude())).zoom(12).build();

            mMap.animateCamera(CameraUpdateFactory
                    .newCameraPosition(cameraPosition));

            Marker currentMarker = mMap.addMarker(markerOption);

            mMarkersHashMap.put(currentMarker, myMarker);

            mMap.setInfoWindowAdapter(new MarkerInfoWindowAdapter());
        }
    }
}

自定义标记的工作方式与标准标记不同。您遇到的问题是一个已知问题,处理此问题的最佳方法如下:

  • 确保自定义标记的图像是对称的并且 id 与锚点完全对齐。
  • 信息window也应该类似地在标记的中心对称对齐,否则会很难看。请注意,自定义标记图标通常需要 different anchor。对于信息 window,使用自定义信息 window 布局(带有自定义背景)使其与标记正确对齐。