/ / geocoder एक मार्कर - जावास्क्रिप्ट, गूगल मैप्स-एपीआई -3 पर क्लिक करने पर पहले से संग्रहीत मूल्य लौटा रहा है

geocoder पहले संग्रहीत मान लौटा रहा है जब एक मार्कर पर क्लिक करें-जावास्क्रिप्ट, गूगल मैप्स-एपीआई-3

मैं गूगल मैप एपीआई का उपयोग करके जियोकोड लागू कर रहा हूंv3 (जावास्क्रिप्ट)। मैं म्यूटेंट मार्कर लगा रहा हूं और जब मैं मार्कर पर क्लिक करता हूं तो मैं चाहता हूं कि संबंधित पता सूचना-विंडो में आए। लेकिन जब मैं मार्कर पर क्लिक करता हूं, तो शुरू में पते का डिफ़ॉल्ट मान (कोड जियो-पता अनुपलब्ध के अनुसार!)। आ रहा है और जब मैं दूसरे मार्कर पर क्लिक करता हूं तो इसमें पहले से क्लिक किए गए मार्कर का पता होता है। मैं कोड का टुकड़ा संलग्न कर रहा हूं।

    var addr=" Geo-Address Unavailable!";
var geocoder = new google.maps.Geocoder();
for(var i = 0; i < latLngs.length-1; i++){ //latLngs is the array of latlongs
marker = new google.maps.Marker({
position: latlng,
id:markerId,
icon: image,
map: map,
animation : google.maps.Animation.DROP,
});
}
markers[markerId] = marker;
var infowindow = new google.maps.InfoWindow({
content: "loading..."
});
google.maps.event.addListener(marker, "click", function () {
geocoder.geocode({"latLng": this.getPosition()}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
addr = results[0].formatted_address;

}
});

infowindow.setContent(addr);
infowindow.open(map, this);
});

उत्तर:

जवाब के लिए 0 № 1

जियोकोडिंग अतुल्यकालिक है। आपको जियोकोडर से कॉलबैक के अंदर दिए गए मान का उपयोग करना होगा।

क्या हो रहा है:

  1. आप जियोकोडर के लिए एक अनुरोध भेजते हैं।
  2. आप प्रतिक्रिया प्रदर्शित करते हैं
  3. जियोकोडर से प्रतिक्रिया वापस आती है
  4. आप जियोकोडर को एक और अनुरोध भेजते हैं
  5. आप पहले अनुरोध पर प्रतिक्रिया प्रदर्शित करते हैं
  6. प्रतिक्रिया दूसरे अनुरोध के लिए जियोकोडर से वापस आती है