Android Mapview:控制多种OverlayItems的排序?

时间:2012-06-25 00:42:08

标签: android android-mapview itemizedoverlay

我已经在这个问题上寻找了一段时间,但已经取得了胜利。

我有一个简单的地图视图,可以使用ManagedOverlay上的自定义重叠项,让我们称之为redOverlayItemblueOverlayItem。所有ManagedOverlay都会查询我的数据库,查找不同类型的一组位置,然后将它们异步放置在地图上。

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

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

1 个答案:

答案 0 :(得分:1)

好吧,伙计们,我明白了。

在你的叠加层中,你需要覆盖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);