- Beiträge: 33
Google Maps Distance Matrix API
- Rainer N. aus E.
- Autor
- Offline
- Benutzer
Weniger
Mehr
4 Jahre 5 Monate her - 4 Jahre 5 Monate her #3948
von Rainer N. aus E.
Google Maps Distance Matrix API wurde erstellt von Rainer N. aus E.
Hallo liebe Flowheater-Community!
Ich habe eine Aufgabe und hoffe, dass jemand von Euch schon mal sowas in der Art gemacht hat. Google stellt verschidenste APIs kostenlos zur Verfügung. Eine davon ist die "Google Maps Distance Matrix API" . Auf diese kann man auf einfachem Wege über eine URL mit dem HTTP-GET-Request Entfernungsdaten (Fahrtstrecke) abrufen und als XML oder JSON ausgeben lassen. Nun würde ich gerne meine Adressdatenbank mit Flowheater Zeile für Zeile abarbeiten lassen und je Zeile diesen Request ausführen lassen und den Wert "Distance" in die Adressdatenbank zurück schreiben lassen (Freifeld1). Hat jemand eine Idee oder ggf. sogar einen Code-Snippet für mich? Wird das nur was über .Net Script-Code?
Hier ein Link zur einfachen Erklärung der Google Maps Distance Matrix API:
https://mizine.de/html/mit-google-maps-api-entfernungen-berechnen/#Entfernung_berechnen_mit_einem_URL_Abruf
Das ist der HTTP-GET-Request mit Ausgabe im JSON Format ->
https://maps.googleapis.com/maps/api/distancematrix/json?origins=%2299310%20XYZstadt,%20XYZ%20Str.%2043+DE%22&destinations=:{destination_addresses}+DE&mode=%22driving%22&language=%22de-DE%22&sensor=%22false%22&key=Dein-Google-API-Key
Das ist der Request mit Ausgabe im XML Format ->
https://maps.googleapis.com/maps/api/distancematrix/xml?origins=%2299310%20XYZstadt,%20XYZ%20Str.%2043+DE%22&destinations=:{destination_addresses}+DE&mode=%22driving%22&language=%22de-DE%22&sensor=%22false%22&key=Dein-Google-API-Key
Ich hoffe mir kann jemand helfen!? Ich wünsche ein schönes Wochenende!
VG Rainer
Ich habe eine Aufgabe und hoffe, dass jemand von Euch schon mal sowas in der Art gemacht hat. Google stellt verschidenste APIs kostenlos zur Verfügung. Eine davon ist die "Google Maps Distance Matrix API" . Auf diese kann man auf einfachem Wege über eine URL mit dem HTTP-GET-Request Entfernungsdaten (Fahrtstrecke) abrufen und als XML oder JSON ausgeben lassen. Nun würde ich gerne meine Adressdatenbank mit Flowheater Zeile für Zeile abarbeiten lassen und je Zeile diesen Request ausführen lassen und den Wert "Distance" in die Adressdatenbank zurück schreiben lassen (Freifeld1). Hat jemand eine Idee oder ggf. sogar einen Code-Snippet für mich? Wird das nur was über .Net Script-Code?
Hier ein Link zur einfachen Erklärung der Google Maps Distance Matrix API:
https://mizine.de/html/mit-google-maps-api-entfernungen-berechnen/#Entfernung_berechnen_mit_einem_URL_Abruf
Das ist der HTTP-GET-Request mit Ausgabe im JSON Format ->
https://maps.googleapis.com/maps/api/distancematrix/json?origins=%2299310%20XYZstadt,%20XYZ%20Str.%2043+DE%22&destinations=:{destination_addresses}+DE&mode=%22driving%22&language=%22de-DE%22&sensor=%22false%22&key=Dein-Google-API-Key
Das ist der Request mit Ausgabe im XML Format ->
https://maps.googleapis.com/maps/api/distancematrix/xml?origins=%2299310%20XYZstadt,%20XYZ%20Str.%2043+DE%22&destinations=:{destination_addresses}+DE&mode=%22driving%22&language=%22de-DE%22&sensor=%22false%22&key=Dein-Google-API-Key
Ich hoffe mir kann jemand helfen!? Ich wünsche ein schönes Wochenende!
VG Rainer
Letzte Änderung: 4 Jahre 5 Monate her von FlowHeater-Team. Begründung: JSON/XML Bilder korrigiert
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
4 Jahre 5 Monate her - 4 Jahre 5 Monate her #3949
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Google Maps Distance Matrix API
Hallo Rainer,
dafür ist keine Programmierung notwendig. Sie können die „Google Maps Distance Matrix API“ direkt über den File Heater , der unterstützt auch HTTP/HTTPS Anfragen, abwickeln. Im Anhang habe ich Ihnen ein kleines Beispiel dazu erstellt.
Sie benötigen allerdings zwei File Heater dazu. Der erste File Heater holt den XML Output über die URL in die Definition. Der zweite File Heater schreibt die XML Daten dann in eine Datei auf die Festplatte. Damit Sie einen Bezug zu der Datei aufbauen können, müssen Sie im Dateinamen irgendwie einen eindeutigen Wert verwenden. Im Beispiel habe ich eine ID verwendet. Der Dateiname kann natürlich auch aus mehrere Werten einen zusammengesetzten eindeutigen Wert darstellen.
Nachdem so alle Werte über die „Google Maps Distance Matrix API“ abgerufen sind können Sie anschließend einen weitere Definition über alle geschriebenen XML Dateien laufen lassen. Hierzu einfach die Batch Option „/ReadFilename *.xml“ mit Wildcards verwenden. Hier lesen Sie dann mittels des XML Adapters die Werte aus. Über den Dateinamen können Sie dann z.B. Bezug zu einem Datensatz in einer Datenbank nehmen und die Werte hier aktualisieren.
Wichtig: Da der FlowHeater noch kein JSON unterstützt müssen Sie darauf achten, dass Sie die XML Ausgabe der „Google Maps Distance API“ verwenden.
dafür ist keine Programmierung notwendig. Sie können die „Google Maps Distance Matrix API“ direkt über den File Heater , der unterstützt auch HTTP/HTTPS Anfragen, abwickeln. Im Anhang habe ich Ihnen ein kleines Beispiel dazu erstellt.
Sie benötigen allerdings zwei File Heater dazu. Der erste File Heater holt den XML Output über die URL in die Definition. Der zweite File Heater schreibt die XML Daten dann in eine Datei auf die Festplatte. Damit Sie einen Bezug zu der Datei aufbauen können, müssen Sie im Dateinamen irgendwie einen eindeutigen Wert verwenden. Im Beispiel habe ich eine ID verwendet. Der Dateiname kann natürlich auch aus mehrere Werten einen zusammengesetzten eindeutigen Wert darstellen.
Nachdem so alle Werte über die „Google Maps Distance Matrix API“ abgerufen sind können Sie anschließend einen weitere Definition über alle geschriebenen XML Dateien laufen lassen. Hierzu einfach die Batch Option „/ReadFilename *.xml“ mit Wildcards verwenden. Hier lesen Sie dann mittels des XML Adapters die Werte aus. Über den Dateinamen können Sie dann z.B. Bezug zu einem Datensatz in einer Datenbank nehmen und die Werte hier aktualisieren.
Wichtig: Da der FlowHeater noch kein JSON unterstützt müssen Sie darauf achten, dass Sie die XML Ausgabe der „Google Maps Distance API“ verwenden.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Letzte Änderung: 4 Jahre 5 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Rainer N. aus E.
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 33
4 Jahre 5 Monate her - 4 Jahre 5 Monate her #3950
von Rainer N. aus E.
Rainer N. aus E. antwortete auf Google Maps Distance Matrix API
Hallo Robert,
viele Dank, dass Sie sich mit dem Thema beschäftigt haben. Ich hatte heute zu viel anderes zu tun und komme erst jetzt zum Testen. Auf die Idee mit dem TextFileAdapter wäre ich nie gekommen. Sehr gute Idee!
Nun habe ich das versucht umzusetzen. Dabei habe ich folgenden Denkansatz:
Der erster Gedanke war, alles in einer Definition mit mehreren Schriten durchführen zu lassen. Die Idee scheitert an der Meldung, dass auf der Read Seite für Verarbeitungsschritte >1 einige Heater (MySQL, XML) noch nicht zur Verfügung stehen. Die Alternative ist, dass in 3 einzelnen Definitionen zu erledigen und die 3 Definitionen als 3 Schritte mit dem Flowheater-Server abarbeiten zu lassen.
1.Schritt) Lesen der Adressendatenbank und Export der Adressen in die input.txt. Dabei wird in der 1. Spalte die Kundennummer und in der zweiten Spalte dynamisch die Google Maps Distance Matrix API-URL erzeugt (mit der Adresse und dem API Key usw.)
2.Schritt) Ihre Definition mit dem TextFileAdapter. Lesen der URLs aus der input.txt und schreiben der XML-Dateien ins Verzeichnis
3.Schritt) Lesen der XML-Daten mit der Option „/ReadFilename *.xml“ (geht das mit dem Flowheater-Server?) und schreiben der Entfernungen in die MySQL Datenbank.
Ich werde das mal zusammenbauen und testen! Wenn's klappt oder Fragen entstehen, melde ich mich wieder.
Viele Grüße.
Rainer
viele Dank, dass Sie sich mit dem Thema beschäftigt haben. Ich hatte heute zu viel anderes zu tun und komme erst jetzt zum Testen. Auf die Idee mit dem TextFileAdapter wäre ich nie gekommen. Sehr gute Idee!
Nun habe ich das versucht umzusetzen. Dabei habe ich folgenden Denkansatz:
Der erster Gedanke war, alles in einer Definition mit mehreren Schriten durchführen zu lassen. Die Idee scheitert an der Meldung, dass auf der Read Seite für Verarbeitungsschritte >1 einige Heater (MySQL, XML) noch nicht zur Verfügung stehen. Die Alternative ist, dass in 3 einzelnen Definitionen zu erledigen und die 3 Definitionen als 3 Schritte mit dem Flowheater-Server abarbeiten zu lassen.
1.Schritt) Lesen der Adressendatenbank und Export der Adressen in die input.txt. Dabei wird in der 1. Spalte die Kundennummer und in der zweiten Spalte dynamisch die Google Maps Distance Matrix API-URL erzeugt (mit der Adresse und dem API Key usw.)
2.Schritt) Ihre Definition mit dem TextFileAdapter. Lesen der URLs aus der input.txt und schreiben der XML-Dateien ins Verzeichnis
3.Schritt) Lesen der XML-Daten mit der Option „/ReadFilename *.xml“ (geht das mit dem Flowheater-Server?) und schreiben der Entfernungen in die MySQL Datenbank.
Ich werde das mal zusammenbauen und testen! Wenn's klappt oder Fragen entstehen, melde ich mich wieder.
Viele Grüße.
Rainer
Letzte Änderung: 4 Jahre 5 Monate her von Rainer N. aus E..
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Rainer N. aus E.
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 33
4 Jahre 5 Monate her - 4 Jahre 5 Monate her #3951
von Rainer N. aus E.
Zwischenstand: Schritt1 funktioniert. Schritt 2 funktioniert. Schritt3 funktioniert nur als Batch, nicht als Aufgabe im Flowheater Server. Den Grund verstehe ich nicht. Führe ich die CMD aus, läuft alles durch. Führe ich die FHD mit den gleichen Argumenten im Server Manager aus, funktioniert es nicht.
Das ist der Aufruf per FHBatch: "C:\Program Files\FlowHeater V4\BIN\FHBatch.exe" /ReadFilename \\flowheater\Definitionen\google-distance-matrix-api\*.xml /ShowDebug \\flowheater\Definitionen\google-distance-matrix-api\xml2adressen.fhd (funktioniert)
Das ist das Gleiche, nur als Server Manager Aufgabe -> (funktioniert nicht)
Hat jemand eine Idee warum?
Rainer N. aus E. antwortete auf Google Maps Distance Matrix API
Rainer N. aus E. schrieb: ...Ich werde das mal zusammenbauen und testen! Wenn's klappt oder Fragen entstehen, melde ich mich wieder.
Zwischenstand: Schritt1 funktioniert. Schritt 2 funktioniert. Schritt3 funktioniert nur als Batch, nicht als Aufgabe im Flowheater Server. Den Grund verstehe ich nicht. Führe ich die CMD aus, läuft alles durch. Führe ich die FHD mit den gleichen Argumenten im Server Manager aus, funktioniert es nicht.
Das ist der Aufruf per FHBatch: "C:\Program Files\FlowHeater V4\BIN\FHBatch.exe" /ReadFilename \\flowheater\Definitionen\google-distance-matrix-api\*.xml /ShowDebug \\flowheater\Definitionen\google-distance-matrix-api\xml2adressen.fhd (funktioniert)
Das ist das Gleiche, nur als Server Manager Aufgabe -> (funktioniert nicht)
Hat jemand eine Idee warum?
Anhänge:
Letzte Änderung: 4 Jahre 5 Monate her von FlowHeater-Team. Begründung: Server Manager Bild korrigiert
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
4 Jahre 5 Monate her #3952
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Google Maps Distance Matrix API
Ich sehe erstmal nicht warum das nicht über den
FlowHeater Server
ausgeführt werden kann.
BItte stellen Sie mal im Server Manager über den Reiter Konfiguration das Log Level auf DEBUG und posten hier den kompletten Aufruf für den Task inkl. des generierten Aufrufes sowie die Fehlermeldung.
BItte stellen Sie mal im Server Manager über den Reiter Konfiguration das Log Level auf DEBUG und posten hier den kompletten Aufruf für den Task inkl. des generierten Aufrufes sowie die Fehlermeldung.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.297 Sekunden