In questo scenario, desidero disegnare una bitmap su Google Maps utilizzando gms v2
e ogni aggiornamento di posizione utente impone l'aggiornamento bitmap. Codice Attualmente io uso seguente frammento:Bitmap di ridisegno su Google Maps v2 per Android
public void init(){
result = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
canvas = new Canvas(result);
}
public void update(){
// draw on canvas ...
draw(result);
}
public void draw(Bitmap modifiedBmp) {
if (overlay != null) {
overlay.remove();
}
BitmapDescriptor descriptor = BitmapDescriptorFactory.fromBitmap(modifiedBmp);
overlay = map.addGroundOverlay(new GroundOverlayOptions().image(descriptor).positionFromBounds(bounds).zIndex(100));
}
Il metodo update()
viene chiamato ogni secondo. Trovo questo approccio estremamente inefficiente e sto cercando una soluzione migliore (cioè che non richiede di aggiungere/rimuovere la sovrapposizione dopo ogni aggiornamento). Disegnare le primitive sulla mappa utilizzando addPolygon(...)
e addPolyline(...)
non è un'opzione in quanto richiede capacità di disegno non presenti in API standard.