我如何去改变覆盖的位置。现在,一种方法是删除原始叠加层并绘制一个新叠加层。这样做会更改在它之后绘制的所有叠加层的索引。
对于我的应用程序,每个叠加层都代表具有特定 ID 的用户。当这个用户移动时,我需要更新他的位置。如果我从列表中删除覆盖,我用来为该用户定位覆盖的哈希图将变得无用。
我该怎么做呢?
我如何去改变覆盖的位置。现在,一种方法是删除原始叠加层并绘制一个新叠加层。这样做会更改在它之后绘制的所有叠加层的索引。
对于我的应用程序,每个叠加层都代表具有特定 ID 的用户。当这个用户移动时,我需要更新他的位置。如果我从列表中删除覆盖,我用来为该用户定位覆盖的哈希图将变得无用。
我该怎么做呢?
我没有办法知道。你可以简单地
// remove the old key association
hMap.remove(idForOverlay);
// add a new one
hMap.put(idForOverlay, newOverlayItem);
// add item to the overlays
mapView.getOverlays().add(newOverlayItem);
mapView.invalidate();
实际上,您甚至不必 remove() 和 put() 将用新添加的与键的关联替换当前关联。当前关联作为对象返回
如果我理解正确,您可以更改覆盖点,然后调用 MapView.invalidate。