安卓 map View : Control ordering of multiple types of OverlayItems?

标签 android android-mapview itemizedoverlay

我已经在这个问题上搜索了一段时间,但找到了王牌。

我有一个简单的 map View ,它在 ManagedOverlay 上使用自定义叠加项。 ,我们称它们为 redOverlayItemblueOverlayItem。 ManagedOverlay 所做的只是在我的数据库中查询一组不同类型的位置,然后将它们异步放置在 map 上。

我的托管叠加层工作正常,但我似乎无法控制“z”顺序。例如,有时我有 redOverlayItem 覆盖 blueOverlayItem ,反之亦然,我真的只是希望 redOverlayItem 位于顶部.

我已经想尽办法解决这个问题。如何控制多种类型叠加项的排序?

最佳答案

好的伙计们,我明白了。

在您的 Overlay 中,您需要覆盖 getIndexToDraw

//Overriding to return add order rather than latitude order.
protected int getIndexToDraw(int drawingOrder) {
    return drawingOrder;
}

我现在所做的不是调用 super.getIndexToDraw(int) 返回按纬度值排序的项目,而是返回它们的添加顺序。然后我对我的覆盖数组所做的就是相应地对它们进行排序(我使用的是 Rob Carmick 的 BeanComparator ,但你实际上可以使用任何排序函数)

BeanComparator bc = new BeanComparator(CustomOverlayItem.class, "getIsRed");
Collections.sort(overlayItemsArray, bc);

关于安卓 map View : Control ordering of multiple types of OverlayItems?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11182343/

相关文章:

android - 图像按钮在谷歌地图 v2 中的 InfoWindowAdapter 中不起作用

google-maps - 如何有效地将 Google Maps API V2(使用 MapFragment、Google Map、Marker 等)用于使用 API V1(使用 MapView、GeoPoint 等)的旧应用程序,

Android ItemizedOverlay<OverlayItem> 问题

android - android :id?的范围是什么

Android webrequest简单解决方案

Android 双击,ontouchevent 不工作

ios - react native 不变违规 : Element type is invalid

android - 未知的命令行选项 '-skip'

android - 单击按钮动态添加布局并从布局中获取文本?

android - 如何在 MapView overlay 中从 URL 实现标记延迟加载