У меня есть карта в моем приложении для 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();
}