Mi sono trovato in difficoltà con Google Maps v2 e piastrelle personalizzate. Funziona bene, ma otteniamo molto spesso quadrati neri in Google Maps, e sono molto distruttivi.Android Google Maps v2, MAP_TYPE_NONE e quadratini neri
posso riprodurre il problema in modo molto semplice in questo modo:
mapFragment = new MapFragment() {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mapFragment.getMap().setMapType(GoogleMap.MAP_TYPE_NONE);
}
};
FragmentTransaction trans = getFragmentManager().beginTransaction();
trans.replace(R.id.map, mapFragment);
trans.commit();
Io uso questo codice e un'attività standard con un framelayout. Se faccio lo zoom abbastanza lontano sullo sfondo del mio Nexus4, diventa nero. Se inserisco le tessere su di esso, visualizzerò come lampi neri mentre zoom in.
Ho visto un sacco di soluzioni alternative su come risolvere il problema, e nessuno di loro sembra funzionare affatto. Sembra che accada solo su determinati livelli di zoom, ma I (A) ha bisogno di quei livelli di zoom e (B) non sembra limitare lo zoom (senza creare comunque un pizzico personalizzato per l'implementazione dello zoom).
Ho eseguito alcuni test con fornitori di tile personalizzati. Con MAP_TYPE_NONE
, un fornitore di tile che restituisce semplicemente 1 pixel blu e il mio fornitore di mappe normali, posso vedere visivamente che la mappa cambia da nero a blu -> mia mappa. Anche se il mio fornitore di piastrelle blu personalizzato restituisce immediatamente una tessera blu 1px.
nota che, al fine di vedere questo è necessario impostare la visualizzazione di sfondo a qualcosa di diverso dal nero. Abbiamo usato il tema Android holo light. – neuron
vuoi dire, non hai ottenuto l'immagine della mappa, ottieni le griglie giusto? –
lampeggia prima il nero, poi ottengo la griglia, quindi ottengo l'immagine della mappa. – neuron