2011-08-09 9 views
14

मैं Google मानचित्र API v3 के साथ geocode पते पर काम कर रहा हूं। मैं geocodeCallBack फ़ंक्शन में अतिरिक्त जानकारी कैसे पास करूं? यह समझने के लिए कि मैं क्या हासिल करने की कोशिश कर रहा हूं, नीचे दिए गए मेरे कोड & टिप्पणियां देखें।Google मानचित्र API v3 - GeoCode कॉल में अधिक जानकारी पास करें?

var address = new Array(); 
address[0] = {name:'Building 1',address:'1 Smith Street'}; 
address[1] = {name:'Building 2',address:'2 Smith Street'}; 

for(var rownum=0; rownum<=address.length; rownum++) 
{ 
     if(address[rownum]) 
       geocoder.geocode({'address': address[rownum].address}, geocodeCallBack); 
} 

function geocodeCallBack(results, status) 
{ 
     var marker = new google.maps.Marker({ 
      map: map, 
      position: results[0].geometry.location, 
      //how can I also add the name of the building to the title attribute? 
      title: results[0].formatted_address 
     }); 
} 

उत्तर

19

को बंद करने geocodeCallBack की makeCallback करें। बंद हो जाता है और rownum रखता है:

for (var rownum=0; rownum<=address.length; rownum++) { 
    if (address[rownum]) 
     geocoder.geocode({'address': address[rownum].address}, makeCallback(rownum)); 
} 

function makeCallback(addressIndex) { 
    var geocodeCallBack = function(results, status) { 
     var i = addressIndex; 
     alert(address[i].name + " " + results[0].formatted_address); 
     var marker = new google.maps.Marker({ 
      map: map, 
      position: results[0].geometry.location, 
      // use address[i].name 
      title: results[0].formatted_address 
     }); 
    } 
    return geocodeCallBack; 
} 
बेशक

, आप भी एक बंद makeCallback(addressName) बनाने के लिए और नाम सीधे दे सकते हैं, लेकिन पता सूचकांक के साथ ऊपर संस्करण अधिक सामान्य है।

+0

यहां जियोकोड फ़ंक्शन को कैसे बंद करें? मैं उलझन में हूं कि यह कैसे काम करता है –

संबंधित मुद्दे