地图旋转时地图上的标记会改变位置

The markers on the map change position when map is rotated

我在我的地图上添加了标记:

ClusterLayer markersClusterLayer = new ClusterLayer();
Collection<MapMarker> markers = new ArrayList<>();
for (GeoCoordinate geoCoordinate : list.get(0).getRoute().getWaypoints()) {
    MapMarker marker = new MapMarker();
    marker.setCoordinate(geoCoordinate);
    markers.add(marker);
}
markersClusterLayer.addMarkers(markers);
map.addClusterLayer(markersClusterLayer);

当我在设备上用手指旋转地图时,标记位置会发生轻微变化,例如从道路的一侧转到另一侧。

我该如何解决?

谢谢

编辑:显示问题的视频:youtu。be/mhObjaq72GQ

从您的代码中看不出来,但您是否有可能为您的地图标记使用了自定义图标?如果是这样,请记住默认情况下锚点设置为图像的中心。这并不总是正确的位置。

例如,如果您的标记图像是一个箭头,您希望将锚点设置到箭头的尖端。否则,当地图旋转时,它可能看起来指向不同的位置(尽管它的中心总是在同一个地方)。设置不正确的锚点也会导致类似的行为。

您可以使用 setAnchorPoint 方法更改锚点。

我找到了问题,它与点的高度有关。

我正在使用

PositioningManager.getInstance().getLastKnownPosition()

它返回了一个带有高度的位置。结果,标记在地图上方 "flying"。将高度设置为 0 解决了这个问题。