Einzelnen Beitrag anzeigen

NetSonic

Registriert seit: 10. Mai 2007
124 Beiträge
 
Delphi 10 Seattle Professional
 
#124

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

  Alt 13. Sep 2011, 10:30
Alles klar, es funktioniert. Vielen Dank.

Jetzt würde mich aber noch interessieren, wie ich die Länge der ermittelten Route und der einzelnen Wege, falls Wegpunkte gesetzt sind, auslesen kann. In Deiner Beispiel-Anwendung "Directions" habe ich dazu nichts gefunden. Habe dort nur den Quellcode-Schnipsel der Callback-Funktion:

Delphi-Quellcode:
procedure TForm1.DirectionsCallback(Sender: TObject; Result: TDirectionsResult; Status: String);
var
  n, r, l, s: Integer;
  DirectionsRendererOptions: TDirectionsRendererOptions;
  procedure AddMsg(Msg: String);
  begin
    Memo1.Lines.Add(Msg);
  end;
begin
  with Script do
  begin
    Memo1.Lines.Clear;
    if Status=Google.Maps.DirectionsStatus.Ok then
    begin
      for r:=0 to Result.Routes.Count-1 do
        for l:=0 to Result.Routes[r].Legs.Count-1 do
          for s:=0 to Result.Routes[r].Legs[l].Steps.Count-1 do
            AddMsg(Result.Routes[r].Legs[l].Steps[s].Instructions); //Richtungshinweise von Start zum Ziel
      for n:=0 to Result.Routes[0].Warnings.Count-1 do
        AddMsg(Result.Routes[0].Warnings[n]); //Warnhinweise zur berechneten Route
      AddMsg(Result.Routes[0].Copyrights); //Copyright-Informationen zur berechneten Route
      DirectionsRendererOptions:=TDirectionsRendererOptions.Create; //Darstellung der berechneten Route vorbereiten
      DirectionsRendererOptions.Directions:=Result; //Ergebnisse übergeben
      DirectionsRendererOptions.Map:=Maps[0]; //Karte übergeben
      Google.Maps.DirectionsRenderer(DirectionsRendererOptions); //berechnete Route darstellen
    end else Memo1.Lines.Add(Status);
  end;
end;
Außerdem würde mich interessieren, wie ich die Routenanweisungen auf Deutsch und ggf. noch anders formatiert erhalten kann. Gerne auch in dem Layout, welches bei Google Maps zur Darstellung der Routeninformationen genutzt wird - ist das überhaupt möglich?

Über einen Tipp würde ich mich freuen.

Gruß
NetSonic

Geändert von NetSonic (13. Sep 2011 um 10:34 Uhr)
  Mit Zitat antworten Zitat