В моем приложении для Android есть карта, которая показывает много маркеров (~ 20-50).Но приложение работает очень плохо, когда я пытаюсь прокрутить / увеличить (в Google Android Maps я сделал пример поиска пиццы, было также найдено около 20-50 результатов, и я не заметил особых проблем с производительностью при масштабировании / прокруткекарта).
Вот мой (псевдо) код:
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();
}