2011-10-16 18 views
5

He estado usando el siguiente código, que estuvo funcionando bien durante una semana más o menos, he vuelto a trabajar en él y parece que ya no funciona. Solo quiero mostrar localidades. Ver la documentación de Google "localidad" es la opción correcta para hacerlo. Estaba pensando que tal vez Google cambió la API o algo así. Tan pronto como lo cambio a código geográfico, funciona, pero muestra todas las calles y lugares, que no es lo que quiero. También probé ["localidad", "política"] sin suerte. ¿Qué estoy haciendo mal aquí?Google Places v3 API autocompletar: ¿no puede funcionar la localidad?

<script type="text/javascript"> 
    function initialize() { 

    var input = document.getElementById('searchTextField'); 

    var Newoptions = { 
     types: ["locality"] 
    }; 

    var autocomplete = new google.maps.places.Autocomplete(input,Newoptions); 

    } 
    google.maps.event.addDomListener(window, 'load', initialize); 
</script> 

<input id="searchTextField" name="member_location" value="" type="text" > 

Respuesta

1

Localidad no siempre se proporciona en los resultados, así que hay que proporcionar una alternativa en caso de que estás en un área sin localidad, como administrative_area_level_3, aunque el único que siempre se obtiene es el país, por lo que Será mejor que lo acepte eventualmente.

+0

pero ¿por qué es así? ¿es porque la API de Google Maps no conoce ni define las ubicaciones para ese área geográfica, por ejemplo, país como Singapur? – ericn

0

En su código, que ha usado

var Newoptions = { 
     types: ["locality"] //This is not proper types. 
    }; 

Uso tipos: [ '(regiones)'] lugar. Luego recupera la localidad Forma que. El código de muestra está abajo y funciona bien.

autocomplete = new google.maps.places.Autocomplete(
    (document.getElementById('YOURsearchBOXID')), 
     { types: ['(regions)']}); 

     google.maps.event.addListener(autocomplete, 'place_changed', function() { 
     var place = autocomplete.getPlace(); 

     for (var i = 0; i < place.address_components.length; i++) { 
      if(place.address_components[i].types[0] == "locality") 
      { 
       console.log(place['address_components'][i]['long_name']); 
      break; 
      } 
     } 

    }); 
Cuestiones relacionadas