0

私がしていることと私が試したこと

次のように、Google GeoコーディングWebサービスを使用して、渡した住所の緯度と経度を取得しています。

$.getJSON("http://maps.googleapis.com/maps/api/geocode/json?address=Boston&sensors=true",function(data){
    //Do my programming here
});

何らかの理由で最初は完全に機能していましたが、その後機能しなくなり、これが問題であることがわかりました。これは、Googleクライアント側APIを使用していることです。

また、そのSOの質問に対する回答も読みました。これは、<script>タグがクロスサイトスクリプティングの問題を克服するのに役立つというものです。

私の問題 :

私はRequireJsを使用しているので、次のようなファイルを含めます。

var Google = require("http://maps.google.com/maps/api/js?sensor=false");

では、Google APIを再び機能させるにはどうすればよいですか、requireJSでそれを行うにはどうすればよいですか?

4

1 に答える 1

1

requirejsはMaps-APIを非同期でロードしますが、使用したURLを非同期ロードに使用することはできません(document.writeを使用した非同期ロードjavascriptを参照)。

対処方法:コールバックパラメーターをURLに追加して、Maps-APIを非同期でロードし、指定されたパラメーターの値と同じ名前の関数でgoogle-maps関連のコードを実行できるようにしますcallback

function geocodeaddr(){
  var geocoder = new google.maps.Geocoder();
      geocoder.geocode({ 'address': 'Boston' }, function (results, status) {
         if (status == google.maps.GeocoderStatus.OK) {
            console.log(results[0].geometry.location);
         }
         else {
            console.log("Geocoding failed: " + status);
         }
      });
}
require(["http://maps.google.com/maps/api/js?sensor=false&callback=geocodeaddr"]);
于 2013-02-18T15:50:17.580 に答える