2012-03-28 8 views
1

Es scheint, dass das GeoResult des Google Geocoders seit gestern ein anderes Bezeichner-Tag für den Geometry-Location-Wert zurückgibt. In der Vergangenheit haben sie für die long/lat-Werte die Va/Ua-Identifikatoren in ihrem JSON-ähnlichen Ergebnisobjekt verwendet. Der Längenidentifikator hat sich gestern von Va nach Ta geändert. Ist dies bei Google-Suchergebnissen üblich, ändert sich diese Kennung im Laufe der Zeit? Wenn dies der Fall ist, wie informiert Google Entwickler über eine solche API-Änderung?GeoCoder gibt verschiedene Längen-/Breitenbezeichner für Geometriespeicherwert zurück

In meinem Code (Objective-C) werde ich für diese Bezeichner mit Hilfe eines JSON-Parsers analysieren, um die aktuellen long/lat-Werte zu erhalten. Daher muss ich mich an die aktuell verwendete Notation eines solchen Bezeichners halten, da ein JSON-Objekt in ein Array oder ein Wörterbuch umgewandelt wird und die spätere Navigation durch die Wörterbücher über ein z. [locationResult objectForKey: @ "Va"] Anruf.

Jede andere Erfahrung mit Google JavaScript APIs. Ansonsten muss ich nach dem long/lat-Ergebnis in JavaScript suchen und dann die endgültigen Ergebnisse zurück zu meinem Objective-C-Code zurückgeben. Aber ich würde immer noch den Weg bevorzugen, das gesamte JSON-Ergebnisobjekt zu meinem Objective-C-Code zurückzugeben und es dort zu parsen.

Grüße


Ich werde meine eigene Frage mit meinem neuesten Untersuchungen aktualisieren: Google wird das interne Format des Objekts JSON recht häufig heute ändern, änderten sie es wieder. Daher muss ich das gesamte Geocoder-Ergebnis auf JavaScript-Seite und nicht in Objectiv-C auswerten, indem ich das Ergebnis mit Hilfe eines JSON-Parsers analysiere. Traurig für mich, aber ich gehe davon aus, dass es sicherer ist, sich an die JavaScript-API zu halten als an das rohe Ergebnis.

:-(

Danke für die Antworten !!!

+0

Das klingt für mich, als ob Sie die Ergebnisse für die JS-API angefordert, die nicht die JS-API verwenden. Dies ist nicht legal. –

+0

Hier sind wir wieder. ;-) Jetzt reden wir über die JS-API. Gut zu wissen, dass dies nicht legal ist, habe ich versucht, einige zusätzliche Informationen auf den Google API Doc-Seiten ohne Erfolg zu finden. Könnten Sie bitte einen Link angeben? Nichtsdestotrotz werde ich meinen Code ändern, um von nun an für den gesamten Geocoding-Prozess zur JS-API zu bleiben. Aber es war immer noch interessant zu sehen, dass sich das interne JSON-ähnliche Geocoding-Ergebnis von Zeit zu Zeit mit einigen Objektidentifikatoren ändert. Grüße. – Alathink

+0

https://developers.google.com/maps/terms 10.1.1. (a-c) –

Antwort

0

Ich bin mir nicht sicher, was Sie sprechen, aber die JSON-Antwort hat nur die Elemente hier definiert zurück: https://developers.google.com/maps/documentation/geocoding/?hl=de#JSON

Es gibt keine Va, Ua, Ta oder ähnliches.

die Elemente sind lat und lng, sonst nichts.

+0

Sorry für die späte Antwort .... In meinem Fall habe ich das gesamte Ergebnisobjekt des Google Geocoders an meinen Objective-C Code gesendet und dort dann analysiert.Innerhalb dieses JSON-Objekts geben sie die Geometrie wie folgt an: geometry = {location = {Xa = "52.49833"; Ya = "13.295769999999948"; }; – Alathink

+0

Können Sie bitte sagen zu welcher URL Sie die Anfrage senden? –

+0

In meinem Fall gibt es keine echte URL. Wenn ich Sie richtig verstanden habe, sprechen Sie von den Google Maps-API-Webdiensten, nicht wahr? Ich verwende nicht die statische GeoCoding API basierend auf einer URL Anfrage, stattdessen benutze ich die JavaScript Geocoding API. – Alathink

8

Versuchen Sie, die lat() aufrufen und lng() Funktionen, die Werte in der geometry.location Objekt gespeichert zu bekommen.

statt

var lat = results[0].geometry.location.Ua; 
var long = results[0].geometry.location.Va; 

Verwenden

var lat = results[0].geometry.location.lat(); 
var long = results[0].geometry.location.lng(); 

Dies ist, was ich für ein Javascript-Projekt verwenden, die von dem gleichen Problem tody getroffen wurde.

+0

Arbeitete für mich. Ich wurde von demselben Problem getroffen. –

+0

Sie haben Recht, aber in meinem Fall habe ich das gesamte Ergebnis zu meinem Objective-C-Code zurück und hatte keinen Zugriff mehr auf die JavaScript-API. Also muss ich meinen Code jetzt auf beiden Seiten ändern. Dennoch ist es besser, den Code jetzt zu ändern und bei der JavaScript-API als fehlgeschlagene Software auf dem Markt zu bleiben. ;-) – Alathink

+0

Danke, das hat auch bei mir funktioniert. Woher wussten Sie über die lat() lng() -Methoden? Auf den Geocoder- oder Geometriebibliothekseiten habe ich keine Erwähnung gefunden. – emilebaizel

Verwandte Themen