В настоящее время я теряю голову над 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, то в Риме будет найдено все терминов , как и ожидалось. Если я повторяю тот же поиск по 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 Local Search, но в ней никогда не говорится о том, какие параметры используются, когда и как должен быть структурирован и оценен запрос, что затрудняет получение приличных результатов. .
Есть ли у вас какие-либо советы, подсказки, предложения о том, как справиться с локальным поиском Google?
UPDATE:
Я просто нашел что-то действительно странное. Может ли кто-нибудь перейти на этот сайт:
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 свои результаты поиска, когда запрос поступает с одного из их серверов?