Google Map API를 사용하여 우편 번호 조회에서 도시 + 주/지역 정보를 검색하고 있습니다. 문제는 경우에 따라 우편 번호 조회가 도시 이름을 검색하지 않는다는 것입니다. 예는 92625 (미국)입니다. 도시에 대한 정의되지 않은 오류가있을 수 있도록 키 소재지가 존재하지 않기 때문에 어떤 경우에JSON 키/노드가 존재하는지 확인하십시오.
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());
}
});
는 위에서 언급 한 바와 같이, 결과에 도시 이름이되지 않습니다. 이 오류로 인해 나머지 스크립트가 실행되지 않습니다.
나는 ...if (place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality != null)
var city = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
else
var city = '';
하여 그것을 해결 할 수 있었다 ... 그러나 이것은 다른 키에 대한 유사한 오류에 대한 저 편집증 있습니다. 예 : AdministrativeArea가 정의되지 않은 경우 위의 IF 문은 정의되지 않은 오류도 발생시킵니다. 그렇다면 모든 키/노드가 있는지 확인해야합니까? 이러한 키 중 일부는 5+ 레벨이기 때문에 어수선한 접근 방법 인 것 같습니다. 더 쉽게 접근 할 수있는 방법이 있습니까? 아마도 익숙하지 않은 JQuery 메서드일까요?
위 예제에서 92625에 대한 결과는 항상 1 개입니다. – Seth