Google Maps in Lazarus anzeigen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Bernie110
Beiträge: 78
Registriert: Mo 10. Feb 2020, 17:43

Google Maps in Lazarus anzeigen

Beitrag von Bernie110 »

Hallo Zusammen,

ich suche nach einer Möglichkeit, in Lazarus mir die Location einer Adresse anzeigen zulassen.
Bisher nutze ich folgenden Code um mir den Ort in Google Maps anzeigen zu lassen.

Code: Alles auswählen

procedure TFrm_w_STAMM_ADRESSEN_ANLEGEN.BT_WORLDClick(Sender: TObject);
var
  XOrt  : String;
  XPlz  : String;
  XStrasse : String;
  URL   : PWideChar;
  PWideString : WideString;
begin

  // ADRESSE IN GOOGLE MAPS ANSEHEN
  If (plz.Text <> '') and (Ort.Text <> '') then
   begin
  XStrasse := Strasse1.text + ' ' + Strasse2.text;
  XOrt     := Ort.Text;
  XPlz     := Plz.Text;
  PWideString := 'http://maps.google.de/maps?f=q&source=s_q&view=text&q=' + XPlz + ' ' + XOrt + ' ' + XStrasse ;
  URL  := Addr(PWideString[1]);

    ShellExecute(Handle,
               'open',
               URL,
               nil,
               nil,
               SW_SHOW);

   end;
end; 
Soweit so gut.
Nun möchte ich mir das Gleiche in einem Formular anzeigen lassen und nicht über den normalen Browser öffen.
Soweit ich bisher gelesen habe wäre das mit IpHtmlPanel möglich.
Das beiligende Lazerus Beispiel hilft mir auch nicht weiter ich werde nicht schlau draus.

Wie macht man das ?
Wäre für Links bzw jedwede Antwort echt dankbar.

Lg Bernie
Zuletzt geändert von Bernie110 am Di 5. Mai 2020, 12:10, insgesamt 1-mal geändert.

wp_xyz
Beiträge: 3249
Registriert: Fr 8. Apr 2011, 09:01

Re: Google Maps in Lazerus anzeigen

Beitrag von wp_xyz »

Du kannst dafür den LazMapViewer verwenden, der seit kurzem auch über den Online-Package-Manager für die Installation verfügbar ist. Dabei ist auch ein Beispiel-Programm. Allerdings benutzt er lediglich die geographischen Koordinaten (Länge, Breite). Eine Suche nach Orten ist verfügbar, nicht aber nach Adressen.

Bernie110
Beiträge: 78
Registriert: Mo 10. Feb 2020, 17:43

Re: Google Maps in Lazerus anzeigen

Beitrag von Bernie110 »

wp_xyz hat geschrieben:
Di 5. Mai 2020, 10:28
Du kannst dafür den LazMapViewer verwenden, der seit kurzem auch über den Online-Package-Manager für die Installation verfügbar ist. Dabei ist auch ein Beispiel-Programm. Allerdings benutzt er lediglich die geographischen Koordinaten (Länge, Breite). Eine Suche nach Orten ist verfügbar, nicht aber nach Adressen.
Hi wp_xyz danke für deine Antwort.
Das könnte eine Option sein. Für die Zukunft benötige ich aber auch eine Entfernungsberechnung. (KM-Berechnung)
Ist das mit LazMapViewer auch möglich ?
Lg Bernie

wp_xyz
Beiträge: 3249
Registriert: Fr 8. Apr 2011, 09:01

Re: Google Maps in Lazerus anzeigen

Beitrag von wp_xyz »

Ja, allerdings nur Luftlinie.

Bernie110
Beiträge: 78
Registriert: Mo 10. Feb 2020, 17:43

Re: Google Maps in Lazerus anzeigen

Beitrag von Bernie110 »

wp_xyz hat geschrieben:
Di 5. Mai 2020, 10:42
Ja, allerdings nur Luftlinie.
Hm habs mir fast gedacht, dann bringt mir das leider nichts. :wink:
Ich muss wohl oder übel die KM_Berechnung und das Anzeigen über Google Maps machen.
Ist auch kein Problem soweit.
Will es halt nur über ein Formular angezeigt bekommen. Dieses Browser öffenen/schliessen ist irgendwie nervig. :mrgreen:

wp_xyz
Beiträge: 3249
Registriert: Fr 8. Apr 2011, 09:01

Re: Google Maps in Lazerus anzeigen

Beitrag von wp_xyz »

Ich hab mich damit nicht befasst, aber https://openrouteservice.org/dev/#/api-docs bietet ein API zur Abfrage einer Route zwischen zwei Punkten. Der im MapViewer integrierte Downloader könnte die Abfrage absenden und die Antwort empfangen (die ganze Komponente funktioniert nach diesem Prinzip). Aus dem erhaltenen GeoJSON-String könnte man dann einen "Track" für den MapViewer konstruieren und so in der Karte anzeigen (wobei die Anzeige von Tracks noch etwas rudimentär ist).

Bernie110
Beiträge: 78
Registriert: Mo 10. Feb 2020, 17:43

Re: Google Maps in Lazarus anzeigen

Beitrag von Bernie110 »

wp_xyz hat geschrieben:
Di 5. Mai 2020, 12:01
Ich hab mich damit nicht befasst, aber https://openrouteservice.org/dev/#/api-docs bietet ein API zur Abfrage einer Route zwischen zwei Punkten. Der im MapViewer integrierte Downloader könnte die Abfrage absenden und die Antwort empfangen (die ganze Komponente funktioniert nach diesem Prinzip). Aus dem erhaltenen GeoJSON-String könnte man dann einen "Track" für den MapViewer konstruieren und so in der Karte anzeigen (wobei die Anzeige von Tracks noch etwas rudimentär ist).
Hi wp_xyz
das ist doch auch über Google Maps möglich. Ok man muss ab einer gewissen Anfrage Summe bezahlen. Stört mich aber im ersten Schritt nicht wirklich. Darum geht es mir hier im Fred auch nicht.
Ich will ja erst einmal nur die Google-Maps Karte in einem Formular in Lazarus angezeigt bekommen.
Am besten gleich mit der o.g. Funktion.
Wie macht man das bzw. hast du vll nen tip wo man es etwas besser nachlesen kann. Über die Komponente IpHtmlPanel scheint es nicht viel zu geben.
Wäre echt dankbar. Lg Bernie

wp_xyz
Beiträge: 3249
Registriert: Fr 8. Apr 2011, 09:01

Re: Google Maps in Lazarus anzeigen

Beitrag von wp_xyz »

Die Komponenten IpHtmlPanel und HmtlViewer werden nicht funktionieren, da sie kein JavaScript unterstützen. Du musst versuchen, einen Browser im Formular einzubetten. Dazu gibt es z.B. https://wiki.lazarus.freepascal.org/fpCEF3/de, mit dem sich Michl hier im Forum viel befasst hat.

Bernie110
Beiträge: 78
Registriert: Mo 10. Feb 2020, 17:43

Re: Google Maps in Lazarus anzeigen

Beitrag von Bernie110 »

wp_xyz hat geschrieben:
Di 5. Mai 2020, 13:19
Die Komponenten IpHtmlPanel und HmtlViewer werden nicht funktionieren, da sie kein JavaScript unterstützen. Du musst versuchen, einen Browser im Formular einzubetten. Dazu gibt es z.B. https://wiki.lazarus.freepascal.org/fpCEF3/de, mit dem sich Michl hier im Forum viel befasst hat.
Hm..schade, dann kann ich das wohl nicht umsetzen.
Trotzdem, herzlichen Dank für deine Antworten !
Lg Bernie

Antworten