【问题标题】:How to make marker be attached to the ground in Mapbox Android SDK?如何在 Mapbox Android SDK 中将标记附加到地面?
【发布时间】:2016-09-27 10:42:51
【问题描述】:

我正在使用最新的 Mapbox Android SDK 并尝试在地图上显示交通标记。有一个标志isFlat 表示标记应该与地面平行。但是,当我旋转地图时,标记不会与地面一起旋转,例如如果我设置旋转角度,使标记面朝北,在用户旋转地图后,标记将不会旋转,并且不再指向北方。这种行为与我之前使用的 Google Maps SDK 不同。

我必须在每个相机更新事件上手动重新调整标记的旋转(当相机旋转发生变化时)。问题是如何固定标记的位置,使其贴在地面上并随之旋转?

【问题讨论】:

    标签: android mapbox


    【解决方案1】:

    虽然我们没有实施任何类型的锚定来保持标记指向特定的地图方向,但目前最好的解决方案是向地图添加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);
          }
        });
    

    这应该在每次地图旋转时调整标记方向并使其指向同一方向。

    【讨论】:

    • 这正是我所做的。但是我注意到在我调用marker.setRotation() 之后有一个延迟(可能是标记的动画)。有什么办法可以禁用动画?
    • 有计划支持锚定吗?
    • 您已经可以调整标记锚定。见this example
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多