9

Ich habe eine Google Maps v2-Anwendung. Während des Renderns flimmern die Kartenkacheln zwischen Terrain-Typ und Normal-Typ. Sie können die Kachelgrenzen im folgenden Screenshot sehen. Jede Fliese scheint zwischen den beiden Typen zu flackern und setzt sich dann auf einer.Kartenkacheln flackern zwischen Gelände und normalen Typen

Durch Schwenken oder Zoomen wird das ganze Flackern wieder ausgelöst. Einige Kacheln scheinen anfälliger für das Flackern zu sein als andere, aber es ist nicht vorhersehbar oder konsistent.

Die Karte wird auf Typ Grundstück:

map.setMapType(MAP_TYPE_TERRAIN); 

Dies geschieht sowohl auf meinem Android 4.1 Telefon und ein Android 4.4 Nexus 7. Ich habe bemerkt es erst vor kurzem, so ist es in schlichen haben während der letzten Aktualisierung der Google Play-Dienste (derzeit mit Update 13) Das Upgrade auf Update 15 macht keinen Unterschied, das Flackern geht weiter.

Hat sonst noch jemand dieses Verhalten?

enter image description here

+0

Ich hatte in der Vergangenheit einige ähnliche Probleme. Während die Karte nach links verschoben wurde, begann die Karte selbst zu flackern. Am Ende mussten wir ein unsichtbares 'LinearLayout' über die gesamte Karte legen und den Fokus darauf setzen und nach dem Übergang entfernen. (Ich konnte den zugehörigen Blogpost nicht finden). Könnte Ihr Problem nicht lösen, aber nur für den Rekord ... – longilong

+0

Wenn dies nur für Ihre App ist, würde ich vorschlagen, dass Sie einen ViewTreeObserver zu Ihrer Karte hinzufügen und darin den Kartentyp ändern. Wenn dieses Problem von innen fortbesteht, glaube ich nicht, dass Ihr Problem von Ihrer Software stammt. Wenn alles in Ordnung ist, ... Sie könnten etwas falsch machen. –

+0

Können Sie den kartenbezogenen Code hinzufügen? – Morendo

Antwort

3

Edit: Problem wurde als von Google-Play-Dienste v16 fixiert.

Leider ist es ein Known Problem und ich erwarte, es könnte bald behoben werden; Davon abgesehen gibt es multiple issues with tiles in maps v2.

Gemäß diesem Problem können Sie möglicherweise das Flackern vermeiden, indem Sie manuell eine TileOverlay einstellen und stattdessen clearTileCache() verwenden. Der klare Vorbehalt hier wäre, dass Sie für ganze Momente die gesamten Daten, die Sie haben, verlieren und möglicherweise Lücken sehen, da das Löschen des Caches an Ort und Stelle ist und bestimmte Teile nicht berücksichtigen oder nur bei neuen Abrufen gelöscht werden.

TileOverlay docs Zustand:

Der TileProvider liefert die Bilder, die in dem Kachel-Overlay verwendet werden. Sie müssen den Kachelanbieter angeben, bevor er zur Karte hinzugefügt wird. Der Kachelanbieter kann nicht mehr geändert werden, nachdem er hinzugefügt wurde. Sie können jedoch das Verhalten des Kachelanbieters ändern, um unterschiedliche Bilder für bestimmte Koordinaten zurückzugeben. Wenn sich die vom Kachelanbieter bereitgestellten Kacheln ändern, müssen Sie anschließend clearTileCache() aufrufen, um sicherzustellen, dass die vorherigen Kacheln nicht mehr gerendert werden.

Eine weitere Option, wenn vertretbare, wird mit OpenStreetMap als Overlay/Quelle für Karte.

Verwandte Themen