-3

内部で関数 B を使用する関数 A があります。関数 A 内で関数 B からの戻り変数を使用したいのですが、常に未定義になります。

私は答えを求めてウェブでたくさん検索しましたが、絶望的になっています。

function initialize() {
  geocoder = new google.maps.Geocoder();
    
    
    var latlng = new google.maps.LatLng(40.714352, -74.005973);
    
    ....

    }
    map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
    **latlng=codeAddress("lisboa")**;
    
    
  }



function codeAddress(a) {

    
    geocoder.geocode( { 'address': a}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
     
      latlong=results[0].geometry.location;
      
        alert(latlong);
        return latlong;
        
      } else {
        alert('Geocode was not successful for the following reason: ' + status);
      }
    });
4

1 に答える 1

0

結果を処理するには、コールバックを使用する必要があります。

function initialize() {
    .... // your code
codeAddress(function(res){
    alert(res);
});         


function codeAddress(callback) {
      var latlng = new google.maps.LatLng(40.714352, -74.005973);
      geocoder.geocode({'latLng': latlng}, function(res, sta) {
      if (sta== google.maps.GeocoderStatus.OK) 
      {
        if (res[1]) 
            callback(res[1].formatted_address);
        else 
            alert("Nothing found");
      }

  });
}
}
于 2013-03-05T17:02:23.630 に答える