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

时间:2016-06-01 14:56:50

标签: android sdk here-api

我在地图上添加了标记:

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

2 个答案:

答案 0 :(得分:1)

我发现了这个问题,它与该点的高度有关。

我正在使用

PositioningManager.getInstance().getLastKnownPosition()

返回高度位置。结果,标记在地图上方“飞行”。将海拔高度设置为0可解决问题。

答案 1 :(得分:0)

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

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

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