2012-01-23 4 views
0

Google Maps APIを使用して小さなツールを構築しようとしています。私は上記のコードは警戒して成功に失敗した私は実際にちょうどHTML/JavaScriptでGoogle Maps APIでjQuery get関数が失敗する

$.get("http://maps.googleapis.com/maps/api/distancematrix/json?origins=Vancouver+BC&destinations=San+Francisco|Victoria+BC&sensor=false", function(data){ 
    alert("Hello world"); 
}); 

これを行うことができdistanceMartrix APIを使用すると思いました。私は関数の前に警告するようにすることができ、すべてがうまくいくこれの前にjqueryコマンドがあります。この信じられないほど簡単な声明で何が間違っていますか?

+0

この問題をさらに説明するために、同じ発信元ポリシーのためにこれを行うことはできません。 http://en.wikipedia.org/wiki/Same_origin_policy GoogleのクライアントサイドAPIを正しく使用する方法については、下の2番目の回答をご覧ください。 – SoWeLie

答えて

1

あなたがタグscriptを経由してGoogleマップv3のJSのライブラリが含まれ、その後http://code.google.com/apis/maps/documentation/javascript/reference.html#DistanceMatrixService

このサービスを使用する必要があるように、この

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script> 


<script type=text/javascript"> 
    var service = new google.maps.DistanceMatrixService(); 
    service.getDistanceMatrix(

      { 
      origins: [...], //array of origins 
      destinations: [...], //aray of destionations 
      travelMode: google.maps.TravelMode.DRIVING, 
      unitSystem: google.maps.UnitSystem.METRIC, 
      avoidHighways: false, 
      avoidTolls: false 
      }, function(response, status){ 
       if(status==google.maps.DistanceMatrixStatus.OK) 
       { 
        alert('ok') 
       } 
      }); 
     } 
</script> 

`

UPDようにそこsomethnmgされますになります。

私は書式設定コードでいくつかの騒動がありますが、私はあなたは私が何を意味するかを推測します。

0

あなたのスクリプトとは別のドメインから "AJAX"リクエストを行っているので、JSONリクエストではなくJSONPリクエストである必要があります。 JSONPでは、データを受け取って処理するスクリプトにコールバックが必要です。 &callback=?をURLの末尾に追加するだけであれば、多くのAPIがJSONPリクエストを処理します。 jQueryは残りの部分を処理し、成功のコールバックに移ります。

私はそれを推測しています。

0

Google Maps APIには基本認証が必要です(1日に25kを超える請求を行う必要があります)。ライブラリを読み込むと自動的に読み込まれますが、Googleを介して読み込むと自動的に読み込まれます。