android - 如何制作可变的 ItemizedOverlay

标签 android google-maps overlay near-real-time

我想制作一个带有可更改图钉的 Google map 叠加层。一种简单的可视化方法是考虑近乎实时的覆盖,其中引脚不断改变位置。

但是,我似乎想不出一种安全的方法来使用 ItemizedOverlay 来执行此操作。 。问题似乎是对 populate 的调用 - 如果某些 map 线程调用 size(),然后我的数据发生更改,则 map 调用访问 getItem() 时的结果可能是 IndexOutOfBoundsException。

有人能想到比重载 populate 并将 super.populate 包装在同步块(synchronized block)中更好的解决方案吗?

也许我可以使用普通的叠加层获得更好的运气?分项似乎是为您管理数据而存在的,也许我在使用它时犯了一个根本性错误?

感谢您的帮助,我的大脑受伤了!

哈米

最佳答案

正如提到的 this article

在列表中添加或删除项目后,您需要调用以下命令。

setLastFocusedIndex(-1);

填充();

示例:

@Override
protected OverlayItem createItem(int i) {
    return overlays.get(i);
}
protected void removeOverlay(OverlayItem o){
    overlays.remove(o);
    setLastFocusedIndex(-1);
    populate();
}
@Override
public int size() {
    return overlays.size();
}
public void addOverlay(OverlayItem o){
    overlays.add(o);
    setLastFocusedIndex(-1);
    populate();
}

关于android - 如何制作可变的 ItemizedOverlay,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2076176/

相关文章:

android模拟器只在eclipse(ubuntu 11.10)中显示字符串 "android"

google-maps - 绘制可调整大小(不相交)的多边形

html - 使用 Outline 的 CSS 悬停不起作用

flutter - 在flutter中制作一个覆盖小部件以从屏幕顶部滑入和滑出

android - 使用 com.example.android.apis.graphics

Android-如何将 android.net.Uri 对象转换为 java.net.URI 对象?

java - 如何使用 Glide for android 压缩和降低图像质量

javascript - 某些事件未触发

javascript - 谷歌地图 API 未加载

android - 在android中的实时提要上叠加图像