2010-01-25 13 views
7

Ich bin wirklich frustriert mit Google Geo-Ergebnissen und hoffe, jemand kann mir raten, das Beste war zu gehen.Google Map GEO Ergebnisse

Ich habe eine AutoSuggest-Funktion erstellt, mit der Sie mit der Eingabe der Adresse beginnen können und Google wird Ihnen mit Vorschlägen antworten. Der Benutzer wählt dann und adressiert, um weiterzugehen.

Aber bevor ich möchte, dass sie auf der nächsten Seite fortfahren, möchte ich ihre Auswahl bestätigen. Ich hätte gedacht, dass dies einfach sein wird, da wir nur gegen das, was Google bereits gegeben hat, nachprüfen. Aber wenn ich meine Validierung suche, zeigt es keine Ergebnisse.

Einige Beispiel-Code:

Lets sagen, dass ich von dem Vorschlag nahm diese Adresse: Suffield, CT 06078, USA

Dann auf Validierung ich eine zweite Lookup mit dieser Adresse dh.

$string = "Suffield, CT 06078, USA";  
echo 'http://maps.google.com/maps/geo?output=json&oe=utf8&gl=us&sensor=false&key=[MyKey]&q='.urlencode($string).''; 

Es gibt mir Fehlercode 602 (G_GEO_UNKNOWN_ADDRESS)

Wie kann es nicht gefunden werden, wenn seine mir die Adresse gegeben?

Wie kann ich das umgehen?

+0

Sieht aus wie es funktioniert, wenn Sie entweder den Zustand oder die Postleitzahl entfernen. Ich weiß nicht warum ... –

+0

Ist diese ** maps.google.com/maps/geo? ** API veraltet? – EmptyStack

Antwort

1

Es ist wirklich seltsam, um sicher zu sein, aber ich war in der Lage, die Adresse mit dem vollen Namen des Staates zu validieren.

funktioniert nicht:

http://maps.google.com/maps/geo?output=json&oe=utf8&gl=us&sensor=false&key=[MyKey]&q=Suffield,%20CT%2006078

funktioniert:

http://maps.google.com/maps/geo?output=json&oe=utf8&gl=us&sensor=false&key=[MyKey]&q=Suffield,%20Connecticut%2006078

Und ja, die Adresse, die sie zur Verfügung gestellt nicht Arbeit in ihrem eigenen System em. Auf der Suche nach Hartford, CT funktioniert. Es scheint, dass in ihren Daten eine Diskrepanz in den Listen vorhanden sein kann, wodurch Suffield + CT falsche Ergebnisse liefert.

3

Sie haben Recht. Das ist ziemlich seltsam.

Beachten Sie, dass es funktioniert, wenn Sie den Raum zwischen CT entfernen und 06078:

http://maps.google.com/maps/geo?q=Suffield,+CT06078,+USA&output=csv&sensor=false 

Die oben genannten Erträge 41,9817631, -72,6506462. (Link to Google Maps)


Reverse-Geocoding diese Koordinaten mit:

http://maps.google.com/maps/geo?q=41.9817631,-72.6506462&output=csv&sensor=false 

kehrt:

200,4,"Suffield, CT, USA" 
+0

Wiered durch Entfernen eines Raumes funktioniert?Möglicherweise müssen Yahoo API-Backup und sie möglicherweise entfernen den Speicherplatz und es erneut versuchen – Lee