Hi, ich mal wieder!
Gibt es eine Möglichkeit Json zu beschleunigen.
Hier das sript von AspirinJunkie
C
#include "JSON.au3"
#include <Array.au3>
;Global CONST $SAPIKEY_TOMTOM = "...."
Global $KM = 86
Abstand()
Func Abstand() ; Abstand zwischen 2 Koordinaten
Local $aDaten [30] [2]
Global $aKoordinaten [2]
For $i = 0 To 29
Local $sAdresse = "49.9638321,7.7693866:50.44668078498122,7.830614351617667"
Local $aKoordinaten = _tomtom_geocodeAdress($sAdresse, $SAPIKEY_TOMTOM)
$aDaten [$i] [0] = $aKoordinaten [0]
$aDaten [$i] [1] = $aKoordinaten [1]
Next
_ArrayDisplay($aDaten)
EndFunc ;==>Abstand #####
Func _tomtom_geocodeAdress($sAdresse, $sApiKey = $SAPIKEY_TOMTOM)
Global $sURL = StringFormat("https://api.tomtom.com/routing/1/calculateRoute/%s/json?&language=de-DE§ion" & _
"Type=traffic&routeType=fastest&traffic=true&avoid=unpavedRoads&travelMode=car&vehicleMaxSpeed=%s&key=%s" & _
_URIEncode($sApiKey), $sAdresse, $KM)
;ConsoleWrite($surl & @CRLF)
; Abfrage senden und Ergebnis in Variable speichern:
Local $sJSONReturn = InetRead($sURL)
If @error Then Return SetError(1, @error, Null)
$sJSONReturn = BinaryToString($sJSONReturn)
; JSON-String parsen:
Local $oJSON = Json_Decode($sJSONReturn)
; Lat und Lon aus Ergebnis extrahieren
Local $fMet = Json_Get($oJSON, ".routes[0].summary.lengthInMeters")
If @error Then Return SetError(3, @error, Null)
Local $fSek = Json_Get($oJSON, ".routes[0].summary.travelTimeInSeconds")
If @error Then Return SetError(4, @error, Null)
Local $aRet[2] = [ $fMet, $fSek]
Return $aRet
EndFunc
; Funktion um Adresse innerhalb der URI zu kodieren:
Func _URIEncode($sData)
; Prog@ndy
Local $aData = StringSplit(BinaryToString(StringToBinary($sData, 4), 1), "")
Local $nChar
$sData = ""
For $i = 1 To $aData[0]
$nChar = Asc($aData[$i])
Switch $nChar
Case 45, 46, 48 To 57, 65 To 90, 95, 97 To 122, 126
$sData &= $aData[$i]
Case 32
$sData &= "+"
Case Else
$sData &= "%" & Hex($nChar, 2)
EndSwitch
Next
Return $sData
EndFunc ;==>_URIEncode
Alles anzeigen
wollte die Datei Test.Json hochladen
geht nicht (ungültige Dateiendung)
Ich brauche nur die grünen Daten.
Meine Frage?
Kann man das laden nach den Daten abbrechen.
Gruß
Windi