Ho una mappa nella mia applicazione Android che mostra molti marcatori (~ 20-50). Ma l'app si comporta molto male quando provo a scorrere/zoom (in Google Maps di Android ho fatto una ricerca campione di pizza e sono stati trovati anche 20-50 risultati e non ho notato alcun particolare problema di prestazioni durante lo zoom/lo scorrimento la mappa).Le prestazioni della mappa Android sono scadenti a causa di molti overlay?
Ecco il mio (pseudo) Codice:
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();
}
il MyItemizedOverlay.addOverlay assomiglia a questo:
public void addOverlay(OverlayItem overlay) {
m_overlays.add(overlay);
populate();
}
Non solo, ma si può avere più di un marcatore in un overlay. Il modo in cui è scritto il tuo pseudocodice, stai aggiungendo * lo stesso overlay * una volta per indicatore - 'mapOverlays.add (itemizedOverlay);' - che non ti aiuterà esattamente. – CommonsWare
come posso fare questo meglio? – Dave
Sarebbe interessante anche per me. –