Google Maps Formel Hilfe
Wer kann mir helfen. Der Code funktioniert nicht mehr. Er ist für die Berechnung der Kilometer.
Ich weiß aber nicht warum. Kann mir jemand helfen . Danke schonmal.
let gcode := text(http("GET", "https://maps.googleapis.com/maps/api/distancematrix/json?origins=" + 'Anfang-Adresse' + "&destinations=" + 'Ziel-Adresse' + "&mode=bicycling&key=***************));
text(extractx(gcode, "\d+.\d+ km"))
7 Antworten
-
Hallo Thomas,
eigentlich alles richtig. Ich würde noch mit do as server versuchen. Und eventuell die Punktnotation statt regex einsetzen. Hier ist ein Kode was bei mir funktioniert:
---let myURL := url("https://maps.googleapis.com/maps/api/distancematrix/json", {
origins: 'Anfang-Adresse',
destinations: 'Ziel-Adresse',
mode: "bicycling",
key: "DEIN API KEY"
});
let gcode := do as server
http("GET", myURL)
end;
gcode.result.first(rows).first(elements).distance.text
---
Wenn das auch nicht hinhaut, musst du bei Google überprüfen ob dein API Key noch stimmt und die Distancematrix freigegeben ist.
Leo
-
Hallo Leo ,
das funktioniert wunderbar.
Das Problem was ich hatte und noch habe. Die APi wurde nicht geändert bzw deaktiviert. Hast du noch eine Idee hierfür ? Das ist ein Auswahl für die einzelen Fahrzeuge.
Vielleicht hat Google was geändert . Habe schon geschuat bin aber nicht fündig geworden. Danke dir schon mal.
let response := http("GET", "https://maps.googleapis.com/maps/api/distancematrix/json?origins=" + 'Anfang-Adresse' + "&destinations=" + 'Ziel-Adresse' + "&mode=" + if Verkehrsmittel = 1 then
"Auto"
else
if Verkehrsmittel = 2 then
"Fahrrad"
else
if Verkehrsmittel = 3 then
"zu Fuß"
else
if Verkehrsmittel = 4 then "per Bahn" end
end
end
end + "&key=**********");
let row := first(response.result).rows;
let element := first(row).elements;
let dauer := first(element).duration;
let km := first(element).distance;
dauer.text -
Na Ja, die trave modes sind ja in deutsch. Die Google Api ist aber in englisch.
---
let travel_modes := ["driving", "bicycling", "walking", "transit"];
let myURL := url("https://maps.googleapis.com/maps/api/distancematrix/json", {
origins: 'Anfang-Adresse',
destinations: 'Ziel-Adresse',
language: "de",
mode: text(item(travel_modes, number(Verkehrsmittel) - 1)),
transit_mode: "rail",
key: "##############"
});
let gcode := do as server
http("GET", myURL)
end;
gcode.result.first(rows).first(elements).duration.text
---
habe noch language: "de" hinzugefügt damit die Ausgabe von Stunden und Minuten in deutsch bleibt.
Leo
-
Hallo Leo,
vielleicht kannst du mir helfen. Habe das in einem Berechnungsfeld. Das dauert mittlerweile sehr lange beim laden der Datenbank.
Ich wolltes mit einer Befehlsfläche machen da Zeigt er mir nicht mehr die und Kilometer an sondern nur Zahlen.
Oder nach einem Auswahlfeld. Also nach Änderung ausfürhren.
Kannst du mit mit dem Code weiterhelfen ?
Danke
-
Hallo Thomas,
für Kilometer würde ich ein Zahlenfeld nehmen und bei Anzeigeoptionen km hinten anfügen:
----
Zahlenfeld:=number(gcode.result.first(rows).first(elements).distance.value)/1000
---
Leo
-
Danke dir. Hast du auch eine Idee für die Anzeige der Zeit ( Fahrzeit ) ?
-
Wenn es ein Zeitfeld ist dann
Zeitfeld:=time(number(gcode.result.first(rows).first(elements).duration.value)*1000)
Leo
Content aside
- vor 3 JahrenZuletzt aktiv
- 7Antworten
- 803Ansichten