我已经在这个问题上搜索了一段时间,但找到了王牌。
我有一个简单的 map View ,它在 ManagedOverlay 上使用自定义叠加项。 ,我们称它们为 redOverlayItem
和 blueOverlayItem
。 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/