首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Overlay中提取OverlayItem?

如何从Overlay中提取OverlayItem?
EN

Stack Overflow用户
提问于 2012-02-10 17:42:21
回答 3查看 526关注 0票数 0

我需要检查新创建的OverlayItem的数据是否已经存在于已经显示在地图上的OverlayItems列表中。我编写了一段代码来检查OverlayItem的数据是否已经存在,但我遇到了一个错误。如何从覆盖图中提取OverlayItem?

我现在的代码是这样的:

代码语言:javascript
复制
//where mapOverlays = mapView.getOverlays() and overlayItem is the newly created overlayItem
public boolean isExisting(List<Overlays> mapOverlays, OverlayItem overlayItem)
{
    ItemizedOverlay overlay;
    OverlayItem itemToCompare;

    for(int i = 0; i < mapOverlays.size(); i++)
    {
        overlay = (ItemizedOverlay)mapOverlays; //I am getting an error here: java.util.Collections$SynchronizedRandomAccessList (from e.getMessage()). The stack trace does not contain any specific exception but only the trace of the error pointing to this line.
        existingOverlayItem = overlay.getItem(i);

        if(itemToCompare.getPoint().equals(overlayItem.getPoint())
            && itemToCompare.getSnippet().equals(overlayItem.getSnippet())
            && itemToCompare.getTitle().equals(overlayItem.getTitle()))
            return true; //if all data are the same
    }

    return false;
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-13 17:20:01

感谢大家回答我的问题。我发现我的问题发生是因为我把mapOverlays分配给了一个错误的类。

而且,我并没有从mapOverlays中提取OverlayItem (我不知道是怎么做的),我只是在addOverlay(OverlayItem overlayItem)中进行了验证。我不能这样做,因为我总是重新初始化我的itemizedOverlay的值。因此,我不能将新添加的OverlayItem与旧的进行比较,因为itemizedOverlay不再保存旧的值。我所做的不是总是重新初始化itemizedOverlay,而是总是清除等于mapView.getOverlays().clear()的mapOverlays。

票数 0
EN

Stack Overflow用户

发布于 2012-02-10 17:59:36

我不知道MapOverlay,但是你可能不能把List放到MapOverlay中

票数 0
EN

Stack Overflow用户

发布于 2012-02-10 18:15:37

这段代码看起来有点奇怪。未来的itemToCompare将何去何从?我在任何地方都看不到它的声明。如果itemToCompare和overlayItem是同一个类,为什么不覆盖类中的equals并使用它,而不是比较每个参数呢?

更好的是,重写类中的equals将允许您访问:

代码语言:javascript
复制
mapOverlays.contains(overlayItem); 

因此,上面的调用将替换您的整个isExisting方法。您可以查看有关equals如何工作的here的更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9225691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档