![]() |
Google Strecke berechnen
Liebes Forum.
Ich möchte die Entfernung zwischen zwei Punkten berechnen lassen. Momentan mache ich das so. Ist aber so super langsam dass ich euch fragen möchte wie ich das optimieren kann?
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw, StdCtrls, shellapi, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP; type TForm1 = class(TForm) wb: TWebBrowser; plz_1: TEdit; ort_1: TEdit; Strasse_1: TEdit; plz: TEdit; ort: TEdit; strasse: TEdit; Button2: TButton; Memo1: TMemo; Memo2: TMemo; kilometer: TEdit; Button3: TButton; Button4: TButton; IdHTTP1: TIdHTTP; Button1: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin wb.Navigate('http://maps.google.de/maps?f=d&source=s_d&saddr=' + plz_1.text + ' ' + ort_1.text + ' ' + Strasse_1.text + '&daddr=' + plz.text + ' ' + ort.text + ' ' + Strasse.text); //+'&ie=UTF8&z=8' end; procedure TForm1.Button2Click(Sender: TObject); var x1, x2: Integer; s: string; i: integer; begin for i := 0 to Memo1.Lines.Count - 1 do begin s := Memo1.Lines[i]; x1 := System.Pos('<DIV>[B]', s); x2 := System.Pos('km[/B] – ca.', s); if ((x1 > 0) and (x2 > 0)) then begin System.Delete(s, x1, x2 - x1 - 9); Memo2.text := s; memo2.text := Stringreplace(memo2.text, '', ' ', [rfReplaceAll]); memo2.text := Stringreplace(memo2.text, '[/B] ', ' ', [rfReplaceAll]); memo2.text := Stringreplace(memo2.text, '[B]', ' ', [rfReplaceAll]); memo2.text := Stringreplace(memo2.text, '[/B]</DIV></DIV>', '', [rfReplaceAll]); kilometer.text := memo2.text; end; end; end; procedure TForm1.Button3Click(Sender: TObject); var DOM: variant; wort, wort2: string; i: integer; begin wort := 'ist unbekannt.'; wort2 := 'Meinten Sie'; DOM := WB.Document; if Wb.LocationURL <> '' then begin memo1.text := DOM.Body.Innerhtml; for i := 0 to memo1.lines.count - 1 do if pos(wort, memo1.lines.strings[i]) <> 0 then begin Showmessage('Der Ort ' + Strasse.text + ', ' + plz.text + ' ' + ort.text + ' ' + wort); end else if pos(wort2, memo1.lines.strings[i]) <> 0 then begin if MessageBox(Handle, PChar('Überprüfen Sie bitte nochmal die Adresse, ' + #13#10 + 'wollen Sie die Adresse online bei "Google Maps" überprüfen lassen?'), PChar('Information'), $00000021) = IDOK then begin ShellExecute(Handle, 'open', pChar('http://maps.google.de/maps?f=d&output=html&saddr=' + Strasse_1.text + '+%2C+' + plz_1.text + '+' + ort_1.text + '&daddr=' + Strasse.text + '+%2C+' + plz.text + '+' + ort.text), nil, nil, SW_SHOW); end else ShowMessage('No page available!'); end; end; end; end. |
Re: Google Strecke berechnen
|
Re: Google Strecke berechnen
Jepp, kenne ich, danke.
Das hier ist auch nicht schlecht. ![]() Würde es aber gerne ganz und gar nur mit Delphi machen. Grüßl Vito |
Re: Google Strecke berechnen
Hat eventuell noch jemand eine Idee?
Ich würde mich sehr darüber freuen. Gruss vom Vito |
Re: Google Strecke berechnen
Was ich da jetzt erkennen kann ist, du möchtest 2 Punkte mit Adresse angeben und die Entfernung errechnen ?
Wenn dem so ist, musst du über google gehen um die Verbindung zwischen Adresse und Position zu bekommmen. Wenn du die Position (in geo.-Koordinaten) aber kennst, kannst du die Entfernung relativ schnell berechnen. ( ![]() Wenn du die Koordianten aber erst in seperaten Anfragten von Google-Maps ermitteln musst, dürfte dein Weg schneller sein ... |
Re: Google Strecke berechnen
Zitat:
|
Re: Google Strecke berechnen
Eben...ich brauche ja die Strecke.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz