Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 删除3个地图覆盖中的1个_Android_Overlay_Android Mapview - Fatal编程技术网

Android 删除3个地图覆盖中的1个

Android 删除3个地图覆盖中的1个,android,overlay,android-mapview,Android,Overlay,Android Mapview,我有一个在地图上显示点的应用程序。当前用户有3个地图覆盖图(1);(2) 用于用户的朋友/联系人;(3) 对其他人来说。我试图允许用户选择地图上显示的内容。目标是允许他们显示所有人(用户、朋友和其他人)或过滤地图以仅显示他们的朋友/联系人 我可以在地图上添加不同的覆盖图。问题是移除覆盖层 我在这里尝试了这种方法--它建议使用以下代码通过索引删除项: private void showFriends(){ mapOverlays = mapView.getOverlays(); int j =

我有一个在地图上显示点的应用程序。当前用户有3个地图覆盖图(1);(2) 用于用户的朋友/联系人;(3) 对其他人来说。我试图允许用户选择地图上显示的内容。目标是允许他们显示所有人(用户、朋友和其他人)或过滤地图以仅显示他们的朋友/联系人

我可以在地图上添加不同的覆盖图。问题是移除覆盖层

我在这里尝试了这种方法--它建议使用以下代码通过索引删除项:

private void showFriends(){

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


但这两种方法都不管用。知道如何解决这个问题吗?

最后使用了以下方法。它并不是真的隐藏或删除覆盖只是清除和重画。这必须比我想做的效率低-也就是说,只需删除存在的内容,但它可以工作。现在

private void showEveryone(){

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

}
mapView.getOverlays().remove(othersMapOverlay);
private void showEveryone(){

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

}