我在地图上添加了标记:
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
答案 0 :(得分:1)
我发现了这个问题,它与该点的高度有关。
我正在使用
PositioningManager.getInstance().getLastKnownPosition()
返回高度位置。结果,标记在地图上方“飞行”。将海拔高度设置为0可解决问题。
答案 1 :(得分:0)
从您的代码中可以看出这一点,但您是否有可能为MapMarkers使用自定义图标?如果是这样,请记住默认情况下锚点设置为图像的中心。这并不总是正确的位置。
例如,如果您的标记图像是箭头,则需要将锚点设置为箭头的尖端。否则,当地图旋转时,它可能看起来指向不同的位置(事件虽然它的中心总是在同一个地方)。设置不正确的锚也可能导致类似的行为。
您可以使用setAnchorPoint
方法更改锚点。