Domanda

Al momento sto perdendo un po 'di capelli sull'API AJAX di Google. Quello che faccio è trasformare i dati strutturati sulla posizione in una query dell'API di ricerca locale di Google al fine di fornire agli utenti un elenco di risultati alternativo dei luoghi.

es:.

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

Tuttavia, a volte l'API si comporta in modo molto strano, spesso non tenendo conto di alcuni parametri che le passo. Ad esempio:

Se cerco " termine Roma Roma IT " su Google Maps, quindi trova tutti i termini a Roma come previsto. Se ripeto la stessa ricerca sull'API, ottengo zero risultati (devo rimuovere "Roma" o "Roma" perché funzioni: Roma è la regione amministrativa qui e Roma il nome della città).

Perché?

Un altro esempio. Ci sono 20 diverse città, città e quartieri chiamati Neustadt in Germania. Ora, quando cerco su Google Maps, ne trova solo uno, a meno che non specifichi un qualificatore aggiuntivo, come una regione o qualcosa del genere.

Ora, a livello di API, mi aspettavo che quando si passano i parametri lat / lon insieme a una query per Neustadt, sarebbe abbastanza intelligente scegliere il Neustadt corretto osservando il codice geografico. Ma ciò non accade, sceglie sempre lo stesso Neustadt e ignora i dati geografici.

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

Ho avuto problemi simili durante le ricerche sui rettangoli. Il rettangolo di selezione sembra essere completamente ignorato, poiché sto ancora ricevendo dati sui risultati che sono a cento chilometri di distanza:

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

L'ultimo risultato non è nemmeno nella stessa città; il piccolo rettangolo di selezione non dovrebbe comportare alcun dato? Potrei anche passare un BBox di dimensioni zero e otterrei comunque risultati.

So che esiste in realtà una documentazione piuttosto estesa per l'API di ricerca locale, ma non si approfondisce mai su quali parametri vengono utilizzati quando e come una query deve essere strutturata e valutata, il che rende molto difficile ottenere risultati decenti .

Hai suggerimenti, suggerimenti, suggerimenti su come affrontare la ricerca locale di Google?

UPDATE: Ho appena trovato qualcosa di VERAMENTE strano. Qualcuno potrebbe visitare questo sito Web:

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

apri firebug e monitora il traffico HTTP quando digiti questa query di ricerca:

test Rome Roma IT

Otterrai un sacco di risultati sulla mappa. Ora copia l'URL che è stato contattato tramite AJAX e invia una richiesta sulla riga di 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"

Ora ottengo risultati ZERO. Come può essere possibile? Non è sicuramente la chiave o gli argomenti di callback, li ho rimossi senza alcuna modifica al risultato di quella query.

Google sta estendendo i risultati della sua ricerca quando una query proviene da uno dei suoi server?

È stato utile?

Soluzione

Ho riscontrato esattamente lo stesso problema e sembra dipendere da una combinazione di problemi di licenza e dal fatto che ciò che Google espone tramite le sue API e ciò che viene visualizzato nelle pagine di ricerca di Maps / Google sono una combinazione di ricerche diverse (ricerca, mappe, base, dati ecc. ecc.)

Sul problema delle licenze, sembra che Google possa visualizzare più informazioni quando un utente passa attraverso il browser, rispetto alle richieste tramite chiamate API (che teoricamente potrebbero essere automatizzate).

Vedi qui per esempio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top