2010-11-28 2 views
1

Ce qui suit ne fonctionne pas:Est-il possible d'utiliser jQuery pour effectuer des appels API Google Maps?

$.get('http://maps.googleapis.com/maps/api/geocode/json?&sensor=false&region=nz&address=queen', function(response){ 
console.debug(response); 
}); 

Il semble que ce n'est pas possible en raison de la politique d'origine même de l'Ajax. Cependant, j'essaie de faire quelque chose d'interactif et j'ai besoin de réponses de l'API Google Maps dans javascript pour le faire.

Répondre

0

Une alternative à la solution de Lee est de faire une requête Ajax à votre propre script serveur qui à son tour appelle l'URL du géocodeur Google. Voici un exemple simple en PHP. Un exemple de travail peut être trouvé here.

<?php 

$address = $_GET['address']; 
$address=str_replace(" ","+",$address); 
if ($address) { 
    $json = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address='.$address. 
    '&sensor=true'); 
    echo $json; 
} 

?> 

Le code jQuery

$.getJSON("getjson.php?address="+address, 
     function(response){ 
       //rest of your code 
      }); 
+0

ouais cela pourrait fonctionner pour moi, merci beaucoup – Aman

+0

Pas de problème, laissez-moi savoir si vous faites face des problèmes – Philar

4

La même règle d'origine peut rendre difficile l'accès direct aux URI google maps. Mais si vous utilisez Javascript API fourni par google, vous n'aurez aucun problème.

+0

humm ... On dirait que je suis pas d'autre choix que d'utiliser propre fonction api de google, mais pourquoi il est appel api fonctionnerait et non appel ajax. Qu'est-ce qui est si différent dans sa mise en œuvre? merci de toute façon, apprécie la réponse. – Aman

+0

Leur API utilise probablement quelque chose comme [JSONP] (http://stackoverflow.com/questions/2067472/please-explain-jsonp/2067584#2067584) pour que les appels interdomaines fonctionnent correctement. Dans tous les cas, leur service est conçu pour être utilisé via l'une de leurs API - ils ne veulent pas que vous l'utilisiez via un autre mécanisme. Et pourquoi pas? Vous bénéficiez également de l'utilisation de leur API. En faisant cela, vous vous isolez de toute modification future de l'implémentation sous-jacente. Juste par curiosité - pourquoi essayez-vous d'éviter leur code API? – Lee

+0

en utilisant google api signifie qu'ils ont la limite d'utilisation droite? Seule une certaine requête de requête peut être faite à leur serveur par jour, et puisque je indente à utiliser cette localisation en cherchant à l'interface où l'utilisateur peut taper un emplacement et les utilisateurs disponibles de cet emplacement s'afficheront. Je pensais que l'utilisation de l'URL directe pourrait économiser un peu d'utilisation des requêtes, non? – Aman