как запустить google map places_changed событие без ввода

Вот мой код

searchBox = new google.maps.places.SearchBox(input);
google.maps.event.addListener(searchBox,"places_changed",that.search);

Я хочу вызвать событие places_changed Когда строка ввода пользователя

3
nl ja de

1 ответы

Вы можете легко вызвать событие при изменении ввода. Однако при вызове getPlaces() вы получите undefined. Если вам действительно нужен список мест для типизированного запроса, вам может быть лучше использовать службу автозаполнения.

https://developers.google.com/maps/documentation/javascript/reference#AutocompleteService

input.on('keydown', function() {
    google.maps.event.trigger(searchBox, 'places_changed');
});

EDIT Below is an example of how to use the AutocompleteService

<!DOCTYPE HTML>
<html>
<head>
    <script src="https://maps.googleapis.com/maps/api/js?libraries=places&sensor=false"></script>
    <script>
        var init = function() {
            var query = document.getElementById('query'),
                autocomplete = new google.maps.places.AutocompleteService();

            query.addEventListener('keyup', function() {
                if (this.value.length === 0) {
                    return;
                }
                autocomplete.getPlacePredictions({input: this.value}, function(predictions, status) {
                    if (status === google.maps.places.PlacesServiceStatus.OK) {
                        console.log(predictions);
                    }
                });
            });
        }
    </script>
</head>
<body onload="init()">
    <input type="text" id="query" placeholder="Search">
</body>
</html>

Если пользователь печатает что-то, то вы, вероятно, не хотите искать каждый раз, когда они вводят символ. Таким образом, вы можете установить таймер перед выполнением поиска.

var searchWait;
query.addEventListener('keyup', function() {
   //make sure we clear any previous timers before setting a new one
    clearTimeout(searchWait); 

    if (this.value.length === 0) {
        return;
    }
    searchWait = setTimeout(function(searchValue) {
        return function() {
            autocomplete.getPlacePredictions({input: searchValue}, function(predictions, status) {
                if (status === google.maps.places.PlacesServiceStatus.OK) {
                    console.log(predictions);
                }
            });
        }
    }(this.value), 500);
});
3
добавлено
если нет прогноза, то как он будет работать?
добавлено автор murli2308, источник
@Mr. 刘 Я обновил свой ответ, чтобы включить демонстрацию с использованием googles AutocompleteService
добавлено автор Seain Malkin, источник
спасибо, можете ли вы дать мне демо-версию об AutocompleteService
добавлено автор lxg, источник
Большое спасибо, что это очень полезно для меня
добавлено автор lxg, источник
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском