2013-10-28 6 views
6

Возможно ли поиск нескольких отдельных ключевых слов в одном месте с помощью Google Maps JavaScript API v3?API Карт Google - поиск нескольких ключевых слов

В документации API Google Адресов говорится, что несколько ключевых слов можно использовать https://developers.google.com/places/training/additional-places-features

?keyword=theater+gym

, но это не работает в API JavaScript. Я пробовал:

function performSearch() { 
    var request = { 
    location: map.center, 
    radius: '500', 
    keyword: 'theater+gym+tacos', 
    rankBy: 'distance' 
    }; 
    service.radarSearch(request, callback); 
} 

... и не возвращает места для каждого ключевого слова. Кто-нибудь есть идея, как искать несколько ключевых слов?

Примечание: Я пытаюсь найти несколько отдельных ключевых слов в одном запросе, а не фраза с пробелами.

+0

Вы попробуйте использовать пробел вместо "+"? или пробел с +? – geocodezip

+0

да, я попробовал оба. они оба возвращают меньше результатов и обычно пристрастны к одному ключевому слову. – CyberJunkie

+0

вы попробовали '% 20' вместо этого? – duncan

ответ

8

Похоже, что ответ «нет» (по крайней мере в настоящее время, вы можете запросить enhancement on the issue tracker.

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

var request = { 
    location: pyrmont, 
    radius: 500, 
    keyword: 'theater' 
    }; 
    infowindow = new google.maps.InfoWindow(); 
    var service = new google.maps.places.PlacesService(map); 
    service.nearbySearch(request, callback); 
    var request2 = { 
    location: pyrmont, 
    radius: 500, 
    keyword: 'gym' 
    }; 
    var service2 = new google.maps.places.PlacesService(map); 
    service2.nearbySearch(request2, callback); 
    var request3 = { 
    location: pyrmont, 
    radius: 500, 
    keyword: 'tacos' 
    }; 
    var service3 = new google.maps.places.PlacesService(map); 
    service3.nearbySearch(request2, callback); 

proof of concept

+0

Я вижу. Спасибо. Я предполагаю, что могу перебирать каждое ключевое слово. – CyberJunkie

0

Я считаю, это связано с Google Maps API open issue 4845. Пожалуйста, отметьте эту проблему, чтобы отслеживать прогресс.

+0

Этот вопрос касается пробелов для фраз, мой вопрос для нескольких отдельных ключевых слов. – CyberJunkie

1

ли вы попробовать с опцией типа. при использовании типа вы можете получить более одной информации место

Пожалуйста, смотрите возможные supported types и RadarSearchRequests попробовать, как этот

function performSearch() { 
    var request = { 
    location: map.center, 
    radius: '500', 
    types: ['movie_theater', 'gym'], 
    rankBy: 'distance' 
    }; 
    service.radarSearch(request, callback); 
} 

я не знаю «тако» в том, какой тип. пожалуйста, поддержите тип и укажите значение типа «tacos».

Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы

+0

Спасибо, введите принимает несколько значений, но я пытаюсь достичь этого с помощью ключевых слов. – CyberJunkie

4

Использование Google API места, сделать булева поиска, кажется, работает так:

var request = { 
      location: /*your location*/, 
      radius: /*your radius*/,    
      keyword: "(cinema) OR (theater)"   
     }; 

вы можете использовать OR, AND, но уважение случай !!

свиданья, netoale

+1

Это не сработает. Некоторая ссылка на документацию была бы полезна. – Frug

+1

Просто попробовал, отлично работает ... – Nathan

+0

Это не сработало для меня. на этом где-нибудь? – invot

2

EDIT: Это, казалось, работать изначально, но еще результаты не были надежными и не были предсказуемы. В результате мы не смогли использовать API таким образом для нашего сценария.

Я использую веб-службу, но я предполагаю, что она должна работать со всеми точками доступа API. Мне потребовалось множество комбинаций для тестирования, но я, в конце концов, приземлился на реализацию требуемых API скобок и котировок, чтобы получить многословные условия OR для работы.

Например, в URL-адрес формы парам:

ключевые слова = ("Место Имя 1") ИЛИ ("PlaceName2") ИЛИ ("Место name3")

+0

Можете ли вы предоставить Js скрипку для этого примера. Это было бы очень полезно – user2936008

+0

Это не работает. –

+0

Да, на самом деле не работает надежно или предсказуемо. Я отредактировал ответ. – Shovas

Смежные вопросы