Поиск типа URL-адреса Google API возвращает неожиданные результаты

Я использую Google Maps API Nearby Search, чтобы найти рестораны поблизости. Но одна проблема, с которой я столкнулся, заключается в том, что возвращаются не все результаты type=restaurant. В случае с определенной точкой в ​​Уэллсли, Массачусетс, когда я запускаю https://maps.googleapis.com/maps/api/place/nearbysearch/xml?location=42.3153566,-71.2449400&radius=1500&type=restaurant&key=MY_API_KEY, я Я могу получить три результата, в том числе Brothers Pizza в Needham, Panellas Market в Needham Heights и Kings Dining в Wellesley, все с типом ресторана. Однако, когда я меняю type=restaurant на keyword=wok, я получаю только один результат, которого раньше не было:

<name>The Wok</name>
<vicinity>180 Worcester St, Wellesley</vicinity>
<type>restaurant</type>
<type>food</type>
<type>point_of_interest</type>
<type>establishment</type>
<geometry>
    <location>
        <lat>42.3153566</lat>
        <lng>-71.2449400</lng>
...

Это, очевидно, помечено как ресторан, как и остальные три. Обратите внимание, что координаты для The Wok точно такие же, какие я использовал для более раннего запроса, который не вернул The Wok, поэтому он определенно находится в радиусе более раннего запроса, который также должен был вернуть этот четвертый результат. Это вызывает у меня проблему, так как я хочу иметь возможность собирать все рестораны в данной области. Тогда кажется, что Google API собирает не все результаты из области, а какую-то их таинственную часть. Я уже знаю, что один поиск не дает более двадцати результатов, но мой предыдущий поиск, начиная с радиуса с центром в Вок, дал только три результата. Мне удалось воспроизвести эту конкретную проблему с Wok несколько раз, так что может ли это быть проблемой с данными, которые Google имеет специально для Wok?

РЕДАКТИРОВАТЬ: Использованиеkeyword=restaurantрешает проблему, но поскольку API выполняет поиск во многих полях, включая обзоры, чтобы найти потенциальные совпадения для ключевого слова, это может привести к нежелательным результатам. Я ищу исключительно рестораны, а не другие виды заведений.


person fairground    schedule 06.04.2018    source источник


Ответы (1)


Поиск поблизости по умолчанию – rankby=prominence, вам, вероятно, понадобится rankby=distance. Однако это не позволит вам указать радиус (и, похоже, до сих пор не возвращает «Вок».

Необязательные параметры

rankby — определяет порядок, в котором перечислены результаты. Обратите внимание, что rankby не должен включаться, если указан радиус (описанный выше в разделе «Обязательные параметры»). Возможные значения:

  • заметность (по умолчанию). Эта опция сортирует результаты в зависимости от их важности. Ранжирование будет отдавать предпочтение видным местам в указанной области. На известность может влиять рейтинг места в индексе Google, мировая популярность и другие факторы.
  • расстояние. Эта опция смещает результаты поиска в порядке возрастания их расстояния от указанного местоположения. Когда указано расстояние, требуется одно или несколько ключевых слов, имя или тип.
person geocodezip    schedule 06.04.2018
comment
Как оказалось, дело не в этом. При ранжировании по известности возникает та же проблема, если я не использую keyword=restaurant. Однако я беспокоюсь, что это приведет к результатам, которые не являются ресторанами (например, если кто-то оставил отзыв о прачечной прямо рядом с рестораном). Но в моем случае чрезмерное обобщение и фильтрация по типу лучше, чем полагаться на черный ящик для предоставления репрезентативной выборки, когда я действительно ищу все рестораны. - person fairground; 07.04.2018