Google Javascript API V3 размещает поиск с типами = ['геокод'] возвращает ZERO_RESULTS - PullRequest
0 голосов
/ 24 августа 2011

У меня проблема с поиском в Google местах. Если я выбираю типы: ['geocode'], я не получаю результатов (ZERO_RESULTS) независимо от условия поиска. Что я делаю неправильно? Вот мой фрагмент кода:

        ...
        var params = {
            name: searchTerm, //search Term is for example 'lon'
            bounds: map.getBounds(),
            types: ['geocode']
         }

        var service = new google.maps.places.PlacesService(map);
        service.search(params, function (results, status) {
                alert(status); - gives ZERO_RESULTS
         }
         ...

Обновление:

Я хочу, чтобы он вел себя так же, как и Javascript AOI для автозаполнения. Чтобы получить мне те же результаты. Я думал, что они запрашивают одни и те же данные?

var input = document.getElementById('location');
var options = {
    bounds: map.getBounds(),
    types: ['geocode']

};
autocomplete = new google.maps.places.Autocomplete(input, options);

google.maps.event.addListener(autocomplete, 'place_changed', function() {

.... Этот дает мне отличные результаты. (Причина, по которой я не использую метод автозаполнения поверх первого решения, заключается в том, что мне не удалось автоматически выбрать первый элемент в списке автозаполнения после нажатия клавиши ввода (в полях поиска). - Если вы знаете ответ на этот вопрос, пожалуйста, помогите :)

Ответы [ 3 ]

0 голосов
/ 30 августа 2011

Я обнаружил, что, удалив параметр "types", я получу гораздо больше мест. Я использую автозаполнение мест, и это определенно дает мне больше возможностей без типов.

Я просто ловлю клавишу ввода и останавливаю ее, чтобы пользователи не могли отправить форму случайно. Не совсем то, что вы хотели, но это работает для меня.

        $("#LatLongSearch").keypress(function (event) {
            if (event.which == 13) {    // make enter key just search map and stop it from submitting form
                event.preventDefault();
            } 
        })
0 голосов
/ 15 июня 2015

попробуйте это

$('#searchform').keypress(function(e) {
                if (e.which == 13) {
                e.preventDefault();
               google.maps.event.addListener(autocomplete, 'place_changed', function() {
                 fillInAddress();
                $('#yourform').submit();
        }); } });

Это работает для меня

0 голосов
/ 25 августа 2011

В настоящее время, по крайней мере, лучше не предполагать, что Google Места на карте имеет много данных для местоположения или что данные точно классифицированы.Вполне вероятно, что в Google Местах нахождения мало или нет мест типа geocode для поиска.

Поскольку types является необязательным, удалите его, и вы, вероятно, получите результаты.

ОБНОВЛЕНИЕ: Относительно материалов автозаполнения и поиска мест, которые были добавлены к вопросу: я не использовал автозаполнение, но я думаю, что он не должен давать вам те же результаты.Поиск мест пытается найти материал, который соответствует поисковому запросу XXXXX.Автозаполнение пытается предсказать заданную подстроку XXXXXX, что вы, возможно, пытаетесь напечатать.Таким образом, он может дать больше (и другие, а во многих случаях менее значимые) результаты.Так что то, что вы видите (больше результатов с автозаполнением), не кажется мне аномальным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...