从mapview中删除特定叠加层

时间:2012-06-06 07:05:15

标签: android android-mapview overlays

我的问题如下。

我正在创建多个逐项列表叠加层。 (因为每个叠加层都有不同的绘图) 我自定义了逐项覆盖类,但是当我将它添加到mapview覆盖时,该类将转换为覆盖类。 更糟糕的是我有3个类在同一个地图上创建叠加层。每个类代表地图上的一个项目,背后有自己的智慧。

我现在的问题是我想要删除叠加层,但我无法确定我插入的索引,也是我尝试删除它时的索引。 (其他类可能在平均时间内插入了叠加层)

这些类是自我更新的,所以我不想要一个从主类触发更新或删除事件的解决方案。 (重点是要添加一个类而忘记它)

所以我的问题是:我怎样才能确定哪个层是什么时候我想在该层上调用remove。我认为这些信息是可用的,但我不知道该怎么做。 这是我用来添加叠加层的代码

 OverlayItem overlayitem = new OverlayItem(p,myNaam ,myOmschrijving );

    LocationOverlay = new MyLocationOverlay(drawable, myContext);

    LocationOverlay.SetLocation(i,overlayitem);

    myOverlays.add(LocationOverlay);

2 个答案:

答案 0 :(得分:0)

您不必删除特定图层。您可以删除其引用指定的叠加层(例如 myOverlay )。

LocationOverlay myOverlay = new MyLocationOverlay(drawable, myContext); //you forgot the name of variable

mapView.getOverlays().remove(myOverlay);

答案 1 :(得分:0)

您可以将某个整数设置为每个叠加层的位置 类似的东西:

mapView.getOverlays().add(0,myScaleBarOverlay);

当你想要删除此电话时:

mapView.getOverlays().remove(0);
mapView.invalidate();

方面