Pergunta

Atualmente, estou perdendo um pouco de cabelo com a API AJAX do Google.O que eu faço é transformar dados estruturados de localização em uma consulta da API de pesquisa local do Google para fornecer aos usuários uma lista alternativa de resultados de lugares.

ex.:

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

No entanto, às vezes a API se comporta de maneira muito estranha, muitas vezes não levando em consideração determinados parâmetros que passo para ela.Por exemplo:

Se eu pesquisar por "termo Roma Roma IT" no Google Maps, ele encontrará tudo termos em Roma como esperado.Se eu repetir a mesma pesquisa na API, não obtenho nenhum resultado (tenho que remover 'Roma' ou 'Roma' para que funcione - Roma é a região administrativa aqui e Roma é o nome da cidade).

Por que é que?

Outro exemplo.Existem cerca de 20 vilas, cidades e bairros diferentes chamados Neustadt na Alemanha.Agora, quando pesquiso no Google Maps, ele encontra apenas um, a menos que eu especifique um qualificador adicional, como uma região ou algo assim.

Agora, no nível da API, eu esperava que, ao passar parâmetros lat/lon junto com uma consulta para Neustadt, seria inteligente o suficiente para escolher o Neustadt correto observando a codificação geográfica.Mas isso não acontece, ele sempre escolhe a mesma Neustadt e ignora os dados geográficos.

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

Tive problemas semelhantes ao fazer pesquisas em caixas delimitadoras.A caixa delimitadora parece ter sido completamente ignorada, pois ainda estou obtendo dados de resultados a cem quilômetros de distância:

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

O último resultado nem está na mesma cidade;a pequena caixa delimitadora não deveria resultar em nenhum dado?Eu poderia até passar um BBox de tamanho zero e ainda assim obteria resultados.

Eu sei que existe uma documentação bastante extensa para a API de pesquisa local, mas ela nunca entra em detalhes sobre quais parâmetros são usados, quando e como uma consulta deve ser estruturada e avaliada, o que torna muito difícil obter resultados decentes.

Você tem alguma dica, sugestão ou sugestão sobre como se familiarizar com a pesquisa local do Google?

ATUALIZAR:Acabei de encontrar algo MUITO estranho.Alguém poderia acessar este site:

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

abra o firebug e monitore o tráfego HTTP ao digitar esta consulta de pesquisa:

test Rome Roma IT

Você obterá vários resultados no mapa.Agora copie a URL que foi contatada via AJAX e envie uma solicitação para ela na linha de comando:

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"

Agora obtenho ZERO resultados.Como pode isso ser possível?Definitivamente não são os argumentos de chave ou retorno de chamada, eu os removi sem qualquer alteração no resultado dessa consulta.

O Google está ampliando seus resultados de pesquisa quando uma consulta vem de um de seus servidores?

Foi útil?

Solução

Eu encontrei exatamente esse mesmo problema e parece ser uma combinação de problemas de licenciamento e o fato de que o que o Google expõe por meio de suas APIs e o que ele exibe nas páginas de pesquisa do Maps/Google são uma combinação de pesquisas diferentes (pesquisa, mapas, base, dados etc.etc.)

Na questão do licenciamento, parece que o Google pode exibir mais informações quando um usuário passa pelo navegador, em comparação com solicitações por meio de chamadas de API (que teoricamente poderiam ser automatizadas).

Ver aqui por exemplo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top