Einzelnen Beitrag anzeigen

Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#20

AW: Schnelleres laden von PNGs

  Alt 10. Mär 2012, 23:44
@Bummi

Leider nicht wirklich. Jede Zoomstufe erfordert neue Kacheln, da ja sonst auch alle grafischen Details (Schrift, Straßen usw.) vergrößert bzw. verkleinert werden. Hast Du ganz weit herausgezoomt, bräuchtest Du zum Lesen ein Mikroskop - ansonsten hast Du Text für (fast) Blinde...
Dann geht es weiter mit der Verwaltung der Kacheln. Normalerweise kannst Du die Karte horizontal beliebig verschieben (also Dich quasi 199 mal um den Globus drehen) - vertikal ist aber bei rund 80° Schluß. Wurde jetzt eine Karte mit niedriger Zoomstufe x mal um 360° verschoben und anschließend kräftig hineingezoomt, entstehen leicht Zahlen, die schon an die Grenzen von Int64 gehen. Also muß bei der gesamten Koordinatentransformation extrem aufgepaßt werden, damit es zu keinen Überläufen kommt. Bei Zoomstufe 22 handelt es sich um Terrapixelbilder - nur eben in kleine Teile zerlegt.
Will man sogar eine animierte Verschiebung der Karte (wie das Wischen auf einem Touchscreen) kommt man schnell in die Verlegenheit, auch noch mit Gleitkommazahlen rechnen zu müssen. Das überfordert dann alle Standardtypen und man muß eigene Typen und Berechnungen dazu entwerfen.
Die Kacheln müssen asynchron geladen und angezeigt werden. Das bedeutet Threads in Verbindung mit GDI...
Das geht alles, ist auch machbar - aber leider nicht "eben mal so nebenbei".
Thomas Nitzschke
Google Maps mit Delphi
  Mit Zitat antworten Zitat