Einzelnen Beitrag anzeigen

DelphiFan2008

Registriert seit: 4. Dez 2008
81 Beiträge
 
Delphi XE2 Starter
 
#183

AW: Google Maps über COM (Component Object Model)

  Alt 12. Feb 2012, 13:50
Hallo,

stehe vor folgender Fragestellung.

Ich möchte von einer Karte mit Polyline (ca. 2000 Punkt) ein JPEG mit höherer Auflösung erzeugen. Screen-Shot vom Inhalt Webbrowser war schnell erstellt. Nun kommt die weitere Aufgabe:Setzte Webbrowser auf z.B. 2048x2048 Bildpunkte, Polyline-Steckenzug zentrieren, Screen-Shot, Karte wieder auf ursprüngliche Größe und neu zenrieren.

Mein derzeitiger Code:

Delphi-Quellcode:
procedure TFMain.TBMapCopyToJPegClick(Sender: TObject);
var t1,t2 : DWord;
begin
  // Teil 1
  WebBrowserMap.Align := alNone;
  WebBrowserMap.Width := 2048;
  WebBrowserMap.Height := 2048;
  MapCenter;
  WebBrowserMap.Update;
  t1 := timeGettime;
  repeat
    t2 := timeGettime;
    Application.ProcessMessages;
  until( WebBrowserMap.Busy=False )or( (t2-t1)>2000 );
  // Teil 2
  WebBrowserScreenShot( WebBrowserMap,'D:\Test.jpg' );
  WebBrowserMap.Align := alClient;
  MapCenter;
end;
Ergebnis: Polyline auf grauem Hintergrund 2048x2048 Pixel. Verschiedene Versuche scheitern, nie ist die Karte komplett mit Polyline drauf. Trenne ich das ganze auf zwei Buttons, Button1 -> Teil 1, Button2 -> Teil 2 ist alles o.k.

Eine Möglichkeit wäre eine bestimmte Zeit zu warten, aus meiner Sicht unsauber, hängt zu startk von Hardware und Internet-Verbindung ab. Gibt es eine Möglichkeit zu erfassen, wann die Seite über den Webbrowser komplett geladen ist und der Inhalt komplett dargestellt ist?

Gruß DelphiFan2008
  Mit Zitat antworten Zitat