2014-12-11 4 views
0

Я звоню в google maps geocode и перебираю по адресу address_components struct и tring для вывода имени города. Я хотел бы сохранить postal_town как имя города, но если он не существует, вместо этого используйте вместо него административный_аре__уровень_2.Проверка API Google Maps - это элемент существует

Проблема в том, что даже если возвращается postal_town, используется administrator_area_level_2. Кто-нибудь может понять, что я делаю неправильно?

for(var i=0, len=result.address_components.length; i<len; i++) { 
       var ac = result.address_components[i]; 

       if(ac.types.indexOf("postal_town") >= 0){ 
        state = $('#sharesparestepAddressCity').val(ac.long_name); 
       }else if(ac.types.indexOf("administrative_area_level_2") >= 0){ 
        state = $('#sharesparestepAddressCity').val(ac.long_name); 
       } 
      } 

ответ

0

Если оба существуют, ваш код вернет последний найденный. Добавьте break, чтобы остановить обработку, когда найдете тот, который вы хотите.

for(var i=0, len=result.address_components.length; i<len; i++) { 
    var ac = result.address_components[i]; 
    if(ac.types.indexOf("postal_town") >= 0){ 
    state = $('#sharesparestepAddressCity').val(ac.long_name); 
    break; 
    } else if(ac.types.indexOf("administrative_area_level_2") >= 0){ 
    state = $('#sharesparestepAddressCity').val(ac.long_name); 
    } 
} 
+0

awesome, Thanks –