地图旋转时地图上的标记会改变位置
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 解决了这个问题。
我在我的地图上添加了标记:
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 解决了这个问题。