2017-01-10 6 views
0

Ich habe eine Anwendung implementiert, die eine GPX-Datei importieren kann und es enthält viele Lat/Long-Koordinaten (mehrere hundert).unbegrenzt reverse Geocoding Anfrage

Meine Anwendung führt eine umgekehrte Geokodierung für jeden Breitengrad/Länge durch. Ich möchte alle lat/long in einer Tabellenansicht mit ihrer Adresse anzeigen lassen (die nach Land und Stadt sortiert ist).

Ich führe jeweils nur eine Geocodierungsanfrage durch (wie in der Dokumentation von reverseGeocodeLocation() in Core-Location beschrieben.) Wenn ich die Antwort einer Geocodierungsanfrage bekomme, frage ich die nächste und dann bis ich habe alle meine Lat/Long aufgelöst

Leider, wenn ich rund 40 Lat/Long aufgelöst habe, löst die reverseGeocodeLocation() einen Fehler (CLError.network) und dann muss ich 60 Sekunden warten, bevor die nächsten etc ...

Ich habe mehrere Fragen: - Gibt es eine Möglichkeit, schneller zu gehen, denn wenn ich 800 Lat/lang habe, dauert es etwa 20 Minuten (800/40) * 60 = 1200 Sekunden (es ist sehr lang für eine App auf einem iPhone) - Auch wenn ich keine Verbesserungen an der Rate, gibt es ein Risiko, dass wenn ich viele Benutzer dann Apple haben verbieten meine App, weil die Anzahl der Geocoding-Anfrage zu hoch ist?

Dank für Ihr Feedback Grüße,

Sebastien

+0

Die Dokumente sagen "Senden Sie höchstens eine Geocodierungsanforderung für eine Benutzeraktion". Daher würde ich sagen, dass das Senden von 800 Anfragen für eine einzelne Benutzeraktion das Risiko birgt, dass Sie abgelehnt werden, weil Sie die Geocodierungs-APIs missbraucht haben. – dan

+0

Ich stimme zu, aber sehen Sie andere Optionen (kostenlos)? – sebastien

Antwort

0

Ist die GPX-Datei statisch oder wird es für jeden Benutzer werden Ändern/herunterladen? Wenn es statisch ist, dann müssen Sie vielleicht vorher alle Koordinaten umkehren.

Alternativ können Sie nach einem anderen Dienst suchen, um die umgekehrte Geocodierung durchzuführen.

+0

Es wird nicht statisch sein, jeder Benutzer kann seine eigenen GPX-Dateien importieren. Die einzige Lösung, die ich gefunden habe, ist, die umgekehrte Geokodierung nur durchzuführen, wenn der Benutzer einen Pin auf der Karte berührt. Nur eins nach dem anderen wird gelöst und es entspricht der Apple-Regel. In der Tabelle, in der alle Einträge angezeigt werden, zeige ich nur lat/long für nicht aufgelöste Einträge an und dann vollständige Adresse für Einträge, die aufgelöst wurden. Wenn ich alle lat/long lösen will, ist die einzige Lösung, für eine Dienstleistung zu bezahlen, und ich kann mir meine App nicht leisten. Ich hätte lieber eine bessere Lösung für meine Benutzer, aber keine Wahl – sebastien