0

我有一个 MapView,我在其中放置了一些 ca。200 个叠加层,都带有相同的图片。我使用 Restlet 获取位置数据。但这不应该是问题,因为我获得数据的速度足够快。

问题是,MapView 非常慢。性能会随着叠加层的数量而降低,但它不应该,因为在 iPad 上,有一个应用程序可以轻松做到这一点。我的平板电脑的 Ghz 更高。平板电脑一次又一次地加载地图的一部分,即使我不滚动它。

所以我认为我做错了什么。所以我有一些问题:

  1. LogCat 说:GC_CONCURRENT freed 287K, 6% free 7222K/7623K, paused 1ms+2ms 并重复此操作,试图连续获得一些空间。是否有可能这是问题所在并且缓存填充过多?

  2. 覆盖层的阴影是否可能会花费相当多的性能?我怎样才能删除它们?

  3. 按返回按钮如何删除所有数据?我必须在onStop()and中插入onDestroy()什么?据我所知,垃圾收集器会自动完成所有这些工作。我还能做什么?删除叠加层?

  4. 我使用的情况如下:

    minLatitude = (minLatitude > partnerLatitude) ? partnerLatitude : minLatitude;
    

    和每个:

    for(BrunnerPartner partner: query) {     
    partnerAL.add(partner);                     
    }
    

    这些对性能有害吗?

  5. 如果在缩放跨度较小时隐藏一些叠加层会对我有帮助吗?我怎么能这样做?

4

1 回答 1

1

看一下 OverlayItem 示例:http: //developer.android.com/resources/tutorials/views/hello-mapview.html

使用单独的叠加层会导致大量膨胀。

于 2012-01-04T18:57:04.113 回答