0

console.logはcoordの値が未定義です。 if関数内でconsole.log coordを使用すると値が返されますが、ジオコード関数から値が出力されないようです。スコープのジオコードGoogle Maps API

ジオコードの範囲はどのようなものか分かりますが、ジオコード関数から値を取得するためにどのように変更できますか?

THANKS

var coord; 

    function change_coord(location) { 
    var geocoder = new google.maps.Geocoder(); 
     geocoder.geocode({'address': location}, function(results, status) { 
      if (status == google.maps.GeocoderStatus.OK) { 
       //real_lat and real_lng are int values 
       var real_lat = results[0].geometry.location.lat(); 
       var real_lng = results[0].geometry.location.lng(); 
       coord = {lat: real_lat, lng: real_lng}; 
      } 
     }); 
    console.log(coord); //undefined 
    } 
+2

私はGeoCoderを使用していませんが、geocoder.geocodeはバックエンドとの非同期呼び出しのように見えるため、console.log(coord)をifブロック内に配置する必要があります。あなたはcoordを印刷しています – jsmtslch

答えて

2

は、ジオコーダーのコールバック関数内にconsole.logを試してみてください。 ジオコード応答を受け取る前に、コードconsole.logが実行されます。