2011-01-17 9 views
1

Hallo dort Ich bin in der Lage Geocode zu einem Ort basierend auf Lat/Long-Werte umzukehren. Aber mein Problem ist, ich brauche nur den Namen des Landes und der Stadt, sonst nichts.Reverse-Geocodierung; JSON ändert sich basierend auf den verfügbaren Daten

Es passiert, dass die von Google gegebenen JSON-Daten sich aufgrund der verfügbaren Daten ändern. Manchmal gibt es einen Lokalisierungsstring, aber für einige Breitengrade gibt es keine Ortsinformation. Gibt es eine Faustregel oder eine Wrapperklasse, die die Stadt und das Land aus allen möglichen JSON-Strings extrahieren kann?

zum Beispiel http://maps.google.com/maps/geo?q=24.487148563173424,-78.046875&output=json gibt mir

{ 
    "name": "24.487148563173424,-78.046875", 
    "Status": { 
    "code": 200, 
    "request": "geocode" 
    }, 
    "Placemark": [ { 
    "id": "p1", 
    "address": "Central Andros, The Bahamas", 
    "AddressDetails": { 
    "Accuracy" : 3, 
    "Country" : { 
     "CountryName" : "The Bahamas", 
     "CountryNameCode" : "BS", 
     "SubAdministrativeArea" : { 
     "SubAdministrativeAreaName" : "Central Andros" 
     } 
    } 
}, 
    "ExtendedData": { 
     "LatLonBox": { 
     "north": 24.6312368, 
     "south": 24.3062499, 
     "east": -77.7177462, 
     "west": -78.2299838 
     } 
    }, 
    "Point": { 
     "coordinates": [ -77.9738650, 24.4688482, 0 ] 
    } 
    } ] 
} 

wo als http://maps.google.com/maps/geo?q=47.33882269482199,-100.634765625&output=json gibt mir

{ 
    "name": "47.33882269482199, -100.634765625", 
    "Status": { 
    "code": 200, 
    "request": "geocode" 
    }, 
    "Placemark": [ { 
    "id": "p1", 
    "address": "11445 471st Ave NE, McClusky, ND 58463, USA", 
    "AddressDetails": { 
    "Accuracy" : 8, 
    "Country" : { 
     "AdministrativeArea" : { 
     "AdministrativeAreaName" : "ND", 
     "SubAdministrativeArea" : { 
      "Locality" : { 
       "LocalityName" : "McClusky", 
       "PostalCode" : { 
        "PostalCodeNumber" : "58463" 
       }, 
       "Thoroughfare" : { 
        "ThoroughfareName" : "11445 471st Ave NE" 
       } 
      }, 
      "SubAdministrativeAreaName" : "Sheridan" 
     } 
     }, 
     "CountryName" : "USA", 
     "CountryNameCode" : "US" 
    } 
}, 
    "ExtendedData": { 
     "LatLonBox": { 
     "north": 47.3307737, 
     "south": 47.3244785, 
     "east": -100.6025856, 
     "west": -100.6089256 
     } 
    }, 
    "Point": { 
     "coordinates": [ -100.6089257, 47.3276298, 0 ] 
    } 
    } ] 
} 

Gibt es eine Standardprozedur, wo ich die Stadt und Ländernamen bekommen? Rechts durchquere ich den JSON und versuche mit den verschiedenen Formaten umzugehen, die der Gogole mir entgegenwirft.

Dank

Antwort

0

können Sie versuchen, für einen geeigneten Parser zu suchen, diese Informationen zu extrahieren?

EDIT

http://www.devshed.com/c/a/PHP/Parsing-Google-Maps-API-using-PHP-and-JSON-2348127/

Ich glaube, das ist eine gute Lektüre für Ihren Parser ist

+0

i nicht wirklich Parser finden kann; Das ist ein Grund, warum ich es selbst versucht habe. Kannst du mich auf eins hinweisen, wenn du etwas weißt? – Veeru

+0

@Veeru aktualisierte Antwort mit einem Link zum Lesen auf PHP-JSON-Google-Karte Parser – robobooga

+0

Danke Robo für Ihre Eingabe, aber ich bin hinter dieser Stufe, ich weiß, wie zu lesen, Aufschlüsselung, verstehen Sie die JSON-Antwort. Ich muss nur einen zuverlässigen Weg finden, um Stadt und Land von der JSON-Antwort zu unterscheiden. Wie ich in meinem Beitrag erwähnt habe, ändert sich die JSON-Antwort basierend auf den verfügbaren Daten – Veeru

Verwandte Themen