gpt4 book ai didi

Android Map Performance poor because of many Overlays?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:59:07 26 4
gpt4 key购买 nike

我的 android 应用程序中有一张 map ,显示了许多标记 (~20-50)。但是当我尝试滚动/缩放时,该应用程序的性能非常差(在 Google Android map 中,我做了一个披萨搜索示例,还找到了大约 20-50 个结果,并且在缩放/滚动时我没有注意到任何特定的性能问题 map )。

这是我的(伪)代码:

onCreate() {
....
drawable = this.getResources().getDrawable(R.drawable.marker1);
itemizedOverlay = new MyItemizedOverlay(drawable,mapView);
...
callWebServiceToRetrieveData();

createMarkers();
}

createMarkers(){
for(elem:bigList){
GeoPoint geoPoint = new GeoPoint((int)(elem.getLat()*1000000), (int) (elem.getLon()*1000000));
OverlayItem overlayItem = new OverlayItem(geoPoint, elem.getName(), elem.getData());
itemizedOverlay.addOverlay(overlayItem);

mapOverlays.add(itemizedOverlay);
}
mapView.invalidate();

MyItemizedOverlay.addOverlay 看起来像这样:

public void addOverlay(OverlayItem overlay) {
m_overlays.add(overlay);
populate();
}

最佳答案

如果我理解这是如何正确工作的,那么您不应该在每次添加叠加层后调用 populate。您应该在将它们全部添加后执行此操作。我认为正在发生的事情是您添加了第一个 OverlayItem 并调用了 populate() 因此它将其添加到 ItemizedOverlay。 然后您添加了第二个OverlayItem 到列表并调用 populate() 并将那些 两个 覆盖添加到 ItemizedOverlay 导致 三个 叠加层中的项目。所以我认为您获得的 yield 远远超过您认为的 20-50。

关于Android Map Performance poor because of many Overlays?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2659770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com