动画标记

Animate markers

我正在尝试了解如何在使用 mapbox-gl 时为标记设置动画。我实际上正在使用 3.2.0.3 java 库的 Xamarin 绑定,所以问题可能就在那里。

我使用的示例可以在 GitHub 页面上找到,主要是 this 示例。这个例子表明,一个简单的 ValueAnimator 修改 MarkerOptions 对象的 Position 就足以实现移动。

我所有移动标记的尝试都失败了:在 MarkerOptions 对象上应用 SetPosition 无效。

我尝试过临时解决方案,例如删除所有标记并重新添加它们。在动画师中或通过在 Update 事件中创建我自己的逻辑。但当然,标记会闪烁,因为对地图的修改并未与线程完美同步 UI。

在阅读项目页面上的 mapbox-gl 源代码示例时,我似乎很清楚在 MarkerOptions 上使用 Animator 是一个很好的做法,但无论如何它似乎都会失败我正在努力。

总结:在现有标记上调用 _myMarkerOptions.SetPosition(new LatLng(10, 10)); 没有任何效果。

ValueAnimator 示例仅适用于即将发布的 4.0.0。在此版本之前,Marker.setPosition 是包私有的,外部无法访问。在 MarkerOptions 上调用 setPosition 没有任何效果,因为它是标记对象的构建器,而不是标记本身。

目前唯一可行的方法是移除并读取标记。