Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Routenplanung (https://www.delphipraxis.net/143791-routenplanung.html)

Opa Knack 23. Nov 2009 18:42


Routenplanung
 
Hallo,

ich habe zwar schon einige Beiträge dazu gefunden, aber irgendwie war nichts Brauchbares dabei.

Folgende Situation: Ich erstelle eine Applikation für Bewerbungen. Darin möchte ich dem Anwender die Möglichkeit geben, die Fahrtroute zu seinem designierten neuen Arbeitsplatz vorab anzeigen zu lassen (und sich so bei Stellenanzeigen vorab Gedanken machen zu können, ob die Arbeitsstelle nicht zu weit entfernt wäre).

Ich habe also die notwendigen Daten des Start- und des Zielpunktes. Vom Grundgedanken her soll das Programm nun einen normalen Online-Routeplaner aufrufen, vergleichbar den Gadgets, die auf vielen Webseiten zu finden sind. Hierbei habe ich aber zum Beispiel bei falk.de das Problem, dass die Datenübergabe über deren API geschieht, die nicht weiter erklärt wird (zumindest habe ich nichts Passendes gefunden).

Ich habe ein Tutorial gefunden, mit dem ich die Google Maps über einen Link ansprechen kann. Dieser Link verwendet dann ein Javascript. Jetzt fände ich's ziemlich unpraktisch, aus dem Programm heraus eine Webseite temporär zu erstellen, auf der dann der Link zu Google Maps angeklickt werden müsste, habe aber leider bislang auch keine Möglichkeit gefunden, diesen Schritt zu umgehen.

Um nun zum Punkt zu kommen:

Hat jemand hier bereits Erfahrungen gemacht und eine machbare Lösung gefunden, die direkt zur Route führt? Ich möchte die Route dabei nicht direkt im Programm verwenden, es soll der Routenplaner im Browser aufgerufen und dabei einfach die Eingabe der Start- und Zieladresse automatisiert werden.

Vielen Dank schon vorab.

Gruß
Opa

jfheins 23. Nov 2009 18:49

Re: Routenplanung
 
Ähm .. was hindert dich daran, z.B. so einen Link zu basteln:
Zitat:

http://maps.google.de/maps?q=münchen, leopoldstr. 12 nach hamburg, neumayerstr. 4
und den im Browser aufzurufen?

Florian H 23. Nov 2009 19:38

Re: Routenplanung
 
Zitat:

Zitat von jfheins
Ähm .. was hindert dich daran, z.B. so einen Link zu basteln:
Zitat:

http://maps.google.de/maps?q=münchen, leopoldstr. 12 nach hamburg, neumayerstr. 4
und den im Browser aufzurufen?

Davon wusste er nix ... darum hat er ja gefragt!

sx2008 23. Nov 2009 19:52

Re: Routenplanung
 
siehe: http://mapki.com/wiki/Google_Map_Parameters Abschnitt Directions

Eine Route von Hamburg nach Berlin:
http://maps.google.com/?saddr=Hamburg&daddr=Berlin

Falls du eine schöne Unit dafür basteln würdest, wäre das bestimmt von allgemeinem Interesse... :balloon:

Mithrandir 23. Nov 2009 20:33

Re: Routenplanung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von sx2008
Falls du eine schöne Unit dafür basteln würdest, wäre das bestimmt von allgemeinem Interesse... :balloon:

:stupid:

Rudimentär, aber funktioniert... ;)

Beispielaufruf:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  GM: TGMapsLinker;
begin
  GM := TGMapsLinker.Create;
  GM.FromAdress := 'Platz der Republik 1, 11011 Berlin';
  GM.ToAdress := 'Hinrich-Wilhelm-Kopf-Platz 1, 30159 Hannover';
  GM.OutputType := otNormal;
  GM.MapType := mtSatellite;
  Edit1.Text := GM.GenerateLink;
end;

himitsu 23. Nov 2009 20:53

Re: Routenplanung
 
die URLs sollten vielleicht noch etwas codiert werden
http://www.scalabium.com/faq/dct0126.htm
http://www.delphipraxis.net/internal...ct.php?t=94711

Delphi-Quellcode:
function TGMapsLinker.GenerateLink: String;
begin
  Result := '';
  if (fToAdress = '') AND (fFromAdress = '') then
    exit;

  Result := fMainURL;

  //From
  Result := Result + '?saddr=' + HTTPEncode(fFromAdress);

  //To
  Result := Result + '&daddr=' + HTTPEncode(fToAdress);

  //Output Params
  case fOutputType of
    otJavaScript: Result := Result + '&output=js';
    otHTML:      Result := Result + '&output=html';
  end;

  //Type of the Map
  case fMapType of
    mtMap:      Result := Result + '&t=m';
    mtSatellite: Result := Result + '&t=k';
    mtHybrid:   Result := Result + '&t=h';
    mtTerrain:  Result := Result + '&t=p';
  end;

  //Zoom Set?
  if fZoomLevel > -1 then
    Result := Result + '&z='+ IntToStr(fZoomLevel);
end;

Opa Knack 23. Nov 2009 22:26

Re: Routenplanung
 
Hallo alle,

super, vielen Dank für die Hilfe.

Schönen Abend noch
Opa

dominikkv 24. Nov 2009 00:43

Re: Routenplanung
 
Wird man sich (irgendwann mal) das Bewerbungsprogramm anschauen können? Ich hätte da Interesse ... :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz