2016-09-27 134 views
2

我使用最新的Mapbox Android SDK并尝试在地图上显示传输标记。有一个标志isFlat表示标记应该平行于地面。然而,当我旋转地图时,标记不会与地面一起旋转,例如,如果我设置了旋转角度,那么标记朝北,用户旋转地图后,标记不会旋转,并且不会再指向北方。此行为与我以前使用的Google Maps SDK不同。如何使标记贴在Mapbox Android SDK中的地面上?

我必须在每个相机更新事件(当相机旋转改变时)手动重新调整标记的旋转。问题是如何修复标记的位置,以便它能够坚持到地面并与之一起旋转?

回答

0

虽然我们还没有实现任何一种锚定,以保持标记它指向一个特定的地图方位的,现在最好的解决办法是一个onCameraChangeListener添加到地图并更新标记时,地图上的旋转:

marker = mapboxMap.addMarker(new MarkerViewOptions() 
     .position(new LatLng(40.73581, -73.99155)) 
     .flat(true)); 

mapboxMap.setOnCameraChangeListener(new MapboxMap.OnCameraChangeListener() { 
     @Override 
     public void onCameraChange(CameraPosition position) { 
     marker.setRotation((float) -position.bearing); 
     } 
    }); 

这应该调整标记方向,每次地图旋转并保持指向相同的方向。

+0

这正是我所做的。但是我注意到在我调用'marker.setRotation()'后有一个滞后(也许是一个标记动画)。有什么办法可以禁用动画吗? – ntoskrnl

+0

有没有计划支持锚定? – ntoskrnl

+0

您可以调整标记锚定。请参阅[本示例](https://github.com/mapbox/mapbox-android-demo/blob/master/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/MarkerFollowingRouteActivity.java#L191) – cammace

相关问题