Lumin hat geschrieben:Ich hab mir auch mal die neuste Beta installiert und etwas getestet. So wie es mir scheint (also nur ganz vorsichtig gesagt), funktioniert die Beta-Version besser. In meinen Tests wurden die Adressen immer richtig aufgelöst, auch wenn man ganz schnell viele Anfragen hintereinander geschickt hat.
Diese beiden Änderungen scheinen auf alle Fälle Vorteile gebracht zu haben:
Änderungen:
- Anfragewiederholungen bei Adresssuche optimiert
- Telegramme lesen aus Cache robuster
Was es auch immer mit diesem Cache (aus dem Log-File lese ich heraus: ReloadLocationCache) auf sich hat. Der ist anscheinend nur dafür zuständig, um die Anfragen an Google zu reduzieren, wenn öfters genau die gleiche Adresse angefragt wird?
Ich muss nun leider doch sagen, nachdem ich es noch etwas beobachtet habe, dass es nicht so ganz korrekt funktioniert.
Ich habe festgestellt, wenn das erste Mal am Tag eine Anfrage geschickt wird, dann funktioniert die Adresserkennung nicht. Ich erhalte von Google folgende Meldung:
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<GeocodeResponse>
<status>OVER_QUERY_LIMIT</status>
<error_message>You have exceeded your daily request quota for this API. We recommend registering for a key at the Google Developers Console: https://console.developers.google.com/apis/credentials?project=_</error_message>
</GeocodeResponse>
Dies spiegelt sich auch im Log-File wieder. Anscheinend reicht die Pause von den 2 Sekunden nicht aus. Das erste Telegramm am Tag wird nie ausgewertet. Im Logfile sieht es wie folgt aus:
Code: Alles auswählen
25.04.2018 15:46:50 TelegramInformation, Search Requesting URI http://maps.googleapis.com/maps/api/geocode/xml?address=Deutschland%2C***ORT***%2CHauptstra%C3%9Fe&language=de&sensor=false
25.04.2018 15:46:50 TelegramInformation, Search Result: OVER_QUERY_LIMIT
25.04.2018 15:46:52 TelegramInformation, Search Requesting URI http://maps.googleapis.com/maps/api/geocode/xml?address=Deutschland%2C***ORT***%2CHauptstra%C3%9Fe&language=de&sensor=false
25.04.2018 15:46:52 TelegramInformation, Search Result: OVER_QUERY_LIMIT
25.04.2018 15:46:54 TelegramInformation, Search Requesting URI http://maps.googleapis.com/maps/api/geocode/xml?address=Deutschland%2C***ORT***%2CHauptstra%C3%9Fe&language=de&sensor=false
25.04.2018 15:46:54 TelegramInformation, Search Result: OVER_QUERY_LIMIT
Bei jeder weiteren Anfrage funktioniert es dann.
Google schreibt auch, dass der Parameter
Key erforderlich ist, damit das mit dem Kontingentmanagement richtig klappt. Ich bin ziemlich zuversichtlich, wenn ich einen API-Schlüssel hinterlegen würde, wäre das Problem "OVER_QUERY_LIMIT" behoben und das erste Telegramm wird auch ausgewertet.
Kann ich im Konfig-File irgendwie einen API-Key für das Geocoding eintragen? Also zusätzlich zu den Werten:
Code: Alles auswählen
<item name="maxRetries">3</item>
<item name="retryDelay">2000</item>
<!-- So vielleicht -->
<item name="key">abcdefghijklmnopqrstuvwxyz123</item>
Kann man keine Möglichkeit schaffen, dass zumindest optional einen API-Schlüssel im Einstellungsfenster von Google Maps bei der Adresserkennung eingegeben werden kann?
P.S.: Ich stell die Zeit "retryDelay" mal auf 3000 und schau, ob es dann im zweiten Versuch klappt.
