Posta kodu aramasından şehir + durum/bölge bilgilerini almak için Google Harita API'sini kullanıyorum. Sorun şu ki, bazı durumlarda posta kodu araması bir şehir adı almaz. Bir örnek 92625 (ABD). Şehir için tanımlanmamış bir hata olacaktır böylece anahtar Yerellik var olmadığından Bazı durumlardaJSON anahtarlarının/düğümlerinin var olup olmadığını kontrol edin
var g = new GClientGeocoder();
g.setBaseCountryCode('US');
g.getLocations('92625', function(response){
if (response) {
var place = response.Placemark[0];
var state = place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName;
var city = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
GLog.write("City = "+city+" : State/Region = "+state+" : Country = " + g.getBaseCountryCode());
}
});
, yukarıda da belirtildiği gibi, sonuç bir şehir adı olmayacaktır. Bu hata, komut dosyasının geri kalanı çalışmasını engeller.
ben ...if (place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality != null)
var city = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
else
var city = '';
bunu düzeltmek başardı ... ama bu diğer anahtarlar için de benzer bir hata hakkında bana paranoyak vardır. Örneğin: AdministrativeArea tanımlanmamışsa, yukarıdaki IF deyimi de tanımlanmamış bir hataya neden olur. Her Anahtar/Düğümün var olup olmadığını kontrol etmeli miyim? Dağınık bir yaklaşım gibi görünüyor, çünkü bu tuşların bazıları 5+ seviye derin ... bununla ilgili daha kolay bir yol var, belki de JQuery metodu aşina değil mi?
Yukarıdaki örnekte, 92625 için her zaman yalnızca 1 sonuç vardır. – Seth