2016-05-11 6 views
-2

Ich versuche, lat zurückzukehren, lon für Adress es Array auf console.log druckt aber funktioniert nicht in Funktion RückkehrGoogle Maps: Funktion gibt nicht definierten Wert funktioniert in console.log

var markers = new Array(); 
var cityCircles = new Array(); 
var polycordinates = new Array(); 
var previousepolygones = new Array(); 
var infoxboxs = new Array(); 
function initialize() { 
    var mapProp = { 
     center:new google.maps.LatLng(44.03121020078675, 23.41763112193103), 
     zoom: <?= (isset($zoom) and $zoom != '') ? $zoom : '7' ?>, 
     mapTypeId:google.maps.MapTypeId.ROADMAP 
    }; 
    map = new google.maps.Map(document.getElementById("googleMap"),mapProp); 

    console.log(getcountrylatlng("Romania")); 
} 
function getcountrylatlng(countryname){ 
    var geocoder = new google.maps.Geocoder(); 
    geocoder.geocode(
     {'address': countryname}, 
     function(results, status) { 
      if (status == google.maps.GeocoderStatus.OK) { 
       if (results[0]) { 
        //var result = results[0].formatted_address; 
        //var city = result.split(" - "); 
//console.log(results[0]); 
        return results[0]; 
       } 
      } 
     } 
    ); 
} 

auf der Konsole. log es gibt ein Objekt zurück, aber wenn ich Wert wie in oben Funktion zurückgeben gibt es undefined

mit diesem Brauchen Sie Hilfe,

+0

möglich duplicate of [Warum wird meine Variable nicht verändert, nachdem ich sie in einer Funktion geändert habe? - Asynchrone Code-Referenz] (http://stackoverflow.com/questions/23667086/why-is-my-variable-unterned-after-i-modify-it-inside-of-a-function-asynchron) – geocodezip

Antwort

0

Sie aus der falschen Position kehrt der retrun von Konsolenprotokoll innerhalb einer inneren Funktion ist so nicht zurückgegeben zur Anruferfunktion .

function getcountrylatlng(countryname){ 
    var geocoder = new google.maps.Geocoder(); 
    var myValue; 
    geocoder.geocode(
     {'address': countryname}, 
     function(results, status) { 
      if (status == google.maps.GeocoderStatus.OK) { 
      if (results[0]) { 
       //var result = results[0].formatted_address; 
       //var city = result.split(" - "); 
       //console.log(results[0]); 
       //return results[0]; 
       myValue = results[0]; 
      } 
     } 
    } 
); 
    return myValue; 
}