2011-10-16 14 views
5

Użyłem następującego kodu, który działał dobrze przez tydzień lub mniej, wróciłem do pracy nad nim dalej i już nie działa. Chcę pokazać tylko miejscowości. Patrząc na dokumentację Google "lokalizacja" jest odpowiednią opcją. Myślałem, że być może google zmieniło API lub coś takiego. Zaraz po przełączeniu na geokod działa, ale pokazuje wszystkie ulice i miejsca, co nie jest tym, czego chcę. Próbowałem też ["miejscowość", "polityczny"] bez powodzenia. Co ja tu robię źle?Funkcja autouzupełniania API Miejsc Google w wersji 3 - czy nie działa lokalizacja?

<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" > 

Odpowiedz

1

Miejscowość nie jest zawsze dostarczane w wynikach, więc trzeba zapewnić zabezpieczenie, jeśli jesteś w obszarze z żadnym miejscowości, jak administrative_area_level_3, choć tylko jeden będzie zawsze jest krajem, więc "Lepiej niech to się kiedyś stanie.

+0

, ale dlaczego tak się dzieje? jest tak, ponieważ interfejs API serwisu Mapy Google nie zna/nie definiuje lokalizacji dla tego obszaru geograficznego, np. kraj taki jak Singapur? – ericn

0

W kodzie użyłeś

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

Zastosowanie typy: [ '(regiony)'] Zamiast. Następnie pobierz lokalizację Formularz. Przykładowy kod jest poniżej i działa dobrze.

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; 
      } 
     } 

    }); 
Powiązane problemy