如何在MapBox Android上设置标记的Z轴顺序?

7
我的应用程序显示用户标记。基本上,用户标记显示当前用户在地图上的位置,但我还在地图上放置了其他标记。最终,它会覆盖我的用户标记。我希望我的用户标记位于地图顶部。我希望它是最后渲染的,以便它显示在最顶部。
有什么想法吗?

你找到解决问题的方法了吗? - Linh
1
@PhanVanLinh,很遗憾,除非您实现自己的标记,否则没有办法控制这个。通过实现一个视图,可以使用ViewMarkerOptions来实现这一点,还有其他很酷的选项,比如锚点、偏移量等等。我不记得它是否具有z-ordering。不能相信这种基本的2D渲染被遗漏了,这真是太可惜了。如果你有成百上千个标记,我不能使用ViewMarkerOptions,地图会变得非常缓慢。我认为最好的选择是Mapbox Studio,但我还没有尝试过。 - Neon Warge
3个回答

5

如果有人正在寻找最新SDK的更新答案。

在较新版本的Mapbox Android SDK中,Mapbox Marker类已被弃用。建议使用注释插件,其中包含用于标记的Symbol类。

mapbox-android-plugin-annotation-v7库中,Symbol类具有withZIndex()方法,允许操作地图对象的Z顺序。

mapbox-android-plugin-annotation-v8中,此方法已重命名为withSymbolSortKey()(这有点棘手需要发现)。


1

我认为这可能有帮助:

Mapbox Android SDK: 将标记置于前端

是的。从Mapbox Android SDK v4.1开始,所选中的标记将置于前端。

你可以使用mapboxMap.selectMarker(marker);来选择标记。


1

这里有一个解决方案 https://github.com/mapbox/mapbox-gl-native/pull/5294

如果您使用MarkerView,您可以通过调用MarkerViewManager#select将您的标记置于最顶层。

mapboxMap.getMarkerViewManager().select(marker);

这将通过调用Android View API中的View#bringToFront来结束,选定的标记视图将显示在所有其他标记视图的顶部。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接