Sorgu tahminlerini almak için otomatik tamamlama servisini kullanabilirsiniz. Bir geri çağırma fonksiyonuna sahiptir.
Sağladığınız bağlantıdan örnekte, komut dosyasında global bir değişken olarak girdisi bildirebilirsiniz. html belgesinde değişikliklere gelince
var input;
function initialize() {
...
input = document.getElementById('pac-input');
...
}
function showSpinner() {
document.getElementById('spinner').style.display = 'block';
var service = new google.maps.places.AutocompleteService();
service.getQueryPredictions({ input: input }, callback);
}
function callback(predictions, status) {
if (status != google.maps.places.PlacesServiceStatus.OK) {
document.getElementById('spinner').style.display = 'none';
return;
}
}
:
<body>
<input id="pac-input" class="controls" type="text"
placeholder="Enter a location" onkeypress="showSpinner()">
<img id="spinner" src="spinner.gif" style="position:absolute; top:0; right:0; width: 250px; display: none">
</body>
Bu yalnızca bir saniyelik zaman aşımı aday olacağını Ve sonra otomatik tamamlama hizmeti ile erişim onu fonksiyonunu başlatmak (yani, kullanıcının internet bağlantısı yavaşsa), aksi halde spinner bilinçaltı bir görüntü gibi görünür.
Otomatik tamamlama yerine kendi denetiminizi yazmayı denediniz mi, yalnızca coğrafi kod hizmetini kullanın? anahtar kelime üzerinde (bir saniye sonra bir geocode yapın, sonra spikerinizi gösterin, daha sonra jeokontrolörde spinner'ı gizleyin ve bazı sonuç seçenekleriyle bir liste gösterin. –
@loanburger Denedim, autocomplete ile sadece 1 sorgu ve seçilen öğe başına çağrı yapılacaktır.Api'nin google'unu kullandıysanız, api'nin sunduğu şeyleri çoğaltmak için tek bir aramadan daha fazlasını gerektirir (seçimlerinizle ilgili koordinatlar ve bilgiler dahil). – Akshat
Hey, Arama için Enter tuşuna basmak da geçerli bir işlemdir, Google Haritalar bunu yapmamıza izin veriyorsa, neden kullanıcılarınızın bunu yapmasına izin vermemelisiniz? Bu demoya bakın, ayrıca şunu da yapın: https: // google -developers.appspot.com/maps/documentation/utils/geocoder/ – miguev