【发布时间】:2009-07-15 03:15:19
【问题描述】:
我正在使用 Google Map API 从邮政编码查找中检索城市 + 州/地区信息。问题是在某些情况下,邮政编码查找不会检索城市名称。例如 92625(美国)。
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());
}
});
在某些情况下,如上所述,结果中不会有城市名称,因此城市会出现未定义的错误,因为关键的 Locality 不存在。此错误会阻止脚本的其余部分运行。
我可以通过...解决它
if (place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality != null)
var city = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
else
var city = '';
...但这让我对其他键的类似错误感到偏执。例如:如果 AdministrativeArea 未定义,上述 IF 语句也会导致未定义错误。那么我应该检查每个键/节点是否存在吗?似乎是一种混乱的方法,因为其中一些键的深度超过 5 级......有没有更简单的方法来解决它,也许是我不熟悉的一些 JQuery 方法?
【问题讨论】:
标签: javascript json google-maps