删除3个地图叠加层中的1个

时间:2012-12-13 19:08:02

标签: android overlay android-mapview

我有一个在地图上显示点的应用。当前用户有3个地图叠加(1); (2)为用户的朋友/联系人; (3)对于其他人。我试图允许使用选择地图上显示的内容。目标是允许他们显示每个人(用户,朋友和其他人)或过滤地图以仅显示他们的朋友/联系人。

我可以将不同的叠加添加到地图中。问题是删除叠加层。

我在这里尝试了这种方法 - How to refresh an activity? Map View refresh fails - 建议使用以下代码按索引删除项目:

private void showFriends(){

mapOverlays = mapView.getOverlays();
int j = othersMapOverlay.size();
for(int i = friendsMapOverlay.size; i < j; i++){
    mapOverlays.remove(i);
}
mapView.invalidate();
} 

我的策略是创建一个包含所有叠加层的列表 - mapOverlays,然后使用for循环从第一个叠加层的开头,friendsMapOverlay开始,然后删除,直到我到达第二个贴图叠加层的末尾,其他MapOverlay。

那不起作用。

我还尝试使用

删除列表对象
mapOverlays.remove(othersMapOverlay);

mapView.getOverlays().remove(othersMapOverlay);

但这些都没有成功。知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

使用以下内容结束。它并没有真正隐藏或删除叠加只是清除和重绘。这必须比我想做的效率低 - 即只是移除那些但它有效。 。 。目前。

private void showEveryone(){

    mapOverlays = mapView.getOverlays();
    mapOverlays.clear();
    mapView.invalidate();
    JSONArray friends = buildFriendList();
    JSONArray others = buildOthersList();
    getUserDataForMap(friends, "friends");
    getUserDataForMap(others, "others");

}