2016-04-20 2 views
9

Ich füge mehrere TileOverlays zu einer Google-Karte aus dem Cache. Wenn Sie versuchen, sie mithilfe eines Handlers zu animieren, indem Sie ihre Sichtbarkeit ändern, werden die Overlays auf der Karte während des ersten Durchlaufs flackern.So fügen Sie Kacheln zu Google Map hinzu und animieren sie, d. H. Ersetzen sie mit neuen Kacheln kontinuierlich

Gibt es eine andere Möglichkeit, mit der ich das erreichen kann?

enter image description here

public class LocalTileProvider implements TileProvider { 
    private String url; 
    DatabaseHelper db; 
    String type; 
    // private Paint opacityPaint = new Paint(); 
    String newurl= PathFinder.rainradar_HDBaseurl; 
    String uid; 

    public LocalTileProvider(String uid,DatabaseHelper cache,String type){ 
     this.uid=uid; 
     this.db=cache; 
     this.type=type; 
    } 

    //taking the tile from SQLITEDATABASE 
    @Override 
    public Tile getTile(int x, int y, int zoom){ 
     Tile tile = null;  
     if(db.ispresent(uid, zoom,x , y,type)){ 
      byte[] b=db.gettiles(uid, zoom,x , y,type); 
      tile = new Tile(256, 256, b); 
      return tile; 
     } 
     return NO_TILE; 
    } 
} 

Hier finden Sie Code, diese Kacheln auf die Google-Karte sich für das Hinzufügen von

LocalTileProvider provider1 = new LocalTileProvider(uidList.get(0), db, TAG); 
TileOverlayOptions top1 = new TileOverlayOptions().tileProvider(provider1).visible(true); 
tileoverlay_1 = googleMap.addTileOverlay(top1); 

Nach Zugabe spiele ich die Animation mit dem Handler durch die Sichtbarkeit der Fliese Makel

public void start() { 
    btn_play.setEnabled(true); 
    tileoverlay_default.setVisible(false); 
    runnable_animation = new Runnable() { 
     @Override 
     public void run() { 
      //tileoverlay_default.setVisible(false); 
      isDownloading = false; 
      // stop_download=true; 
      isRunning = true; 
      btn_play.setBackgroundResource(R.drawable.player_pause_2x); 
      setVisibility(global); 

      if (global == 11) { 
       global = 0;    
      } else { 
       global = global + 1; 
      } 
      mHandler_animation.postDelayed(this, 1000); 
     } 
    }; 
    mHandler_animation.post(runnable_animation); 
} 
+0

Bitte stellen Sie nicht dieselbe Frage wiederholt. Dies wird bei Stapelüberlauf als Rauschen angesehen. Wenn Ihre Frage als unbeantwortbar abgeschlossen wird oder keine Antworten anzieht, müssen Sie als Erstes die Frage * verbessern. Eine Anleitung dazu ist [hier gegeben] (http://stackoverflow.com/help/how-to-ask). Fragen mit geringer Qualität oder nicht beantworteter Fragen werden in der Regel geschlossen, können aber bei Bedarf verbessert oder geklärt werden. – Matt

+0

@ user2197811 hast du eine lösung dafür gefunden? Dies ist ein erhebliches Problem mit Google Maps, für das ich auch keine Lösung finden kann. – aez

Antwort

0
public class LocalTileProvider implements TileProvider 
    { 
     private String url; 
     DatabaseHelper db; 
     String type; 
     // private Paint opacityPaint = new Paint(); 
     String newurl= PathFinder.rainradar_HDBaseurl; 
     String uid; 
     public LocalTileProvider(String uid,DatabaseHelper cache,String type) 
     { 
       this.uid=uid; 
      this.db=cache; 
      this.type=type; 
     } 

    //taking the tile from SQLITEDATABASE 
     @Override 
     public Tile getTile(int x, int y, int zoom) 
     { 

      Tile tile = null; 


      if(db.ispresent(uid, zoom,x , y,type)) 
      { 

       byte[] b=db.gettiles(uid, zoom,x , y,type); 
       tile = new Tile(256, 256, b); 
        return tile; 

      } 
    return NO_TILE; 
     } 



    } 
0

Gmaps hat beim Hinzufügen eines neuen TileOverlays immer etwas "verpixelt". Sie haben zwei Möglichkeiten:

  • Fügen Sie den „neuen“ Overlay über die alte, und entfernen/verstecken die alte, wenn nur die erste (für die ich mich nicht erinnern, wenn es einen Rückruf) geladen ist
  • aLLE die TileProviders beim ersten Mal, um die ersten sichtbar (true) und die anderen sichtbar falsche Einstellung (ich kann nicht aus dem Code erhalten, wenn Sie bereits alle Anbieter zum ersten Mal hinzufügen)
+0

Ja m Hinzufügen aller Anbieter in der Betteln und Laters M Justing Spiel mit der Sichtbarkeit von Kacheloverlay – user2197811

Verwandte Themen