API местоположения Google против.Карты:Почему одинаковые запросы дают разные результаты?

StackOverflow https://stackoverflow.com/questions/1605641

Вопрос

В настоящее время я теряю волосы из-за API AJAX Google.Что я делаю, так это превращаю структурированные данные о местоположении в запрос API локального поиска Google, чтобы предоставить пользователям альтернативный список результатов мест.

бывший.:

http://ajax.googleapis.com/ajax/services/search/local?v=1.0&key=XXX&hl=en_US&mrt=localonly&rsz=large&q=pizza+Neustadt+DE

Однако иногда API ведет себя очень странно, часто не принимая во внимание определенные параметры, которые я ему передаю.Например:

Если я ищу на Картах Google «термин Rome Roma IT», то он находит все условия в Риме, как и ожидалось.Если я повторю тот же поиск в API, я получу нулевые результаты (чтобы он работал, мне нужно удалить либо «Рома», либо «Рим»: Рома — это административный регион, а Рим — название города).

Почему это?

Другой пример.В Германии около 20 городов и поселков под названием Нойштадт.Теперь, когда я ищу на Картах Google, он находит только один, если я не укажу дополнительный уточнение, например регион или что-то в этом роде.

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

q=pizza+Neustadt+DE&sll=48.8053,11.7579

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

q=pizza+Neustadt+DE&sll=48.8053,11.7579&sspn=0.00001,0.00001

Последний результат даже не в одном городе;разве крошечная ограничивающая рамка не должна приводить к каким-либо данным?Я мог бы даже передать BBox нулевого размера, и все равно получил бы результаты.

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

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

ОБНОВЛЯТЬ:Я только что нашел кое-что ДЕЙСТВИТЕЛЬНО странное.Может кто-нибудь зайти на этот сайт:

http://code.google.com/apis/ajaxsearch/documentation/localsearch/index.html

откройте Firebug и отслеживайте HTTP-трафик при вводе этого поискового запроса:

test Rome Roma IT

Вы получите кучу результатов на карте.Теперь скопируйте URL-адрес, к которому обращались через AJAX, и отправьте к нему запрос в командной строке:

curl "http://www.google.com/uds/GlocalSearch?key=internal-sample&v=1.0&rsz=large&sll=41.97684819454683%2C12.486648559570312&sspn=0.204185%2C0.549316&q=test%20Rome%20Roma%20IT&lssrc=lsc&lscstyle=final&start=0&callback=_callbacks_._5g139yfuc"

Теперь я получаю НУЛЕВОЙ результат.Как такое возможно?Это определенно не ключ или аргументы обратного вызова, я удалил их без каких-либо изменений в результате этого запроса.

Расширяет ли Google результаты поиска, когда запрос поступает с одного из их серверов?

Это было полезно?

Решение

Я столкнулся с точно такой же проблемой, и, похоже, она связана с сочетанием проблем с лицензированием и тем фактом, что то, что Google предоставляет через свои API и то, что он отображает на страницах поиска Карт/Google, представляет собой комбинацию различных поисковых запросов (поиск, карты, база, данные и т. д. и т. п.)

Что касается лицензирования, похоже, что Google может отображать более информацию, когда пользователь заходит через браузер, по сравнению с запросами через вызовы API (которые теоретически могут быть автоматизированы).

Видеть здесь например.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top