2010-12-15 109 views
0

Salut Je souhaite reproduire les résultats de recherche dynamiques retournés lors de la saisie d'un emplacement google maps par exemple, je suis de Sydney Australie alors quand j'apporte Maps et tapez "Kin" je reçois :Google Maps Recherche dynamique Webservice avec JSON

Maps Example http://img525.imageshack.us/img525/2042/screenshot20101215at514.png.

Mais si j'utilise le webservice géocodage avec un exemple de chaîne comme:

http://maps.google.com.au/maps/api/geocode/json?address=Kin+,%20Australia&bounds=-46.08542,-4.39023%7C93.33984,157.67578&sensor=false&region=au

OU

http://maps.google.com.au/maps/api/geocode/json?address=Kin&sensor=false

OU

http://maps.google.com.au/maps/api/geocode/json?address=Kin&sensor=false&region=au

Tout ce que je me retourné est (Essayez vous-même):

Kinshasa, République démocratique du Congo Arrivées (KIN), Kingston, Jamaïque 4920 Kin, Belgique

ETC.

Celui qui essaie de la limiter à l'Australie renvoie uniquement:

King Island, Loorana TAS 7256, Australie

Maintenant, je ne me dérange pas filtrer le type de localité de la clientside, mais pourquoi ne peut- Je n'ai pas les mêmes résultats EXACT que les résultats de la recherche dynamique retournés par Google Maps lui-même.

Toute aide Appréciée! J'ai passé trop longtemps à ce sujet maintenant ...

Répondre

1

Le géocodeur est pour résoudre une adresse valide à un endroit sur la surface de la terre. Il n'est pas destiné à être utilisé comme un service de suggestions/auto-complète.

+0

Oui, vous avez raison, savez-vous s'il existe un moyen d'effectuer une recherche dynamique? Ou Pensez-vous que Google ne veut pas être inondé de tonnes de connexions TCP pour chaque frappe? –

0

Je l'ai fait avec jquery

// jquery autocompleta $ (function() { $ ("# adresse"). Autocomplete ({// Ce bit utilise le géocodage pour aller chercher l'adresse des valeurs sources : function (request, response) { geocoder.geocode ({'address': request.term}, fonction (résultats, état) { réponse ($.) (résultats, function (item) { return { Étiquette: item.formatted_address, valeur: item.formatted_address, latitude: item.geometry.location.lat(), longitude: item.geometry.location.lng() } })); })} , // Ce bit est exécuté lors de la sélection d'une adresse sélectionnez: function (event, ui) {
//$("#latitude").val(ui.item.latitude); //$("#longitude").val(ui.item.longitude); // var location = new google.maps.LatLng (ui.item.latitude, ui.item.longitude); //marker.setPosition (emplacement); // carte.setCenter (emplacement); } }); });

adresse est un champ de texte dans le fichier html