[英]Google Maps- Multiple InfoWindows
I have a javascript code as below 我有一个如下的JavaScript代码
var markers = response.d.split('^^');
var latlng = new google.maps.LatLng(51.474634, -0.195791);
var mapOptions1 = {
zoom: 14,
center: latlng
}
var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions1);
for (i = 0; i < markers.length; i++) {
var data = markers[i];
var lat = data.split('__')[0];
var lng = data.split('__')[1];
var addr = data.split('__')[2];
var distance = data.split('__')[3];
var newltlng = new google.maps.LatLng(lat, lng);
map.setCenter(newltlng);
var marker = new google.maps.Marker({
map: map,
position: newltlng,
title: addr
});
var infowindow = new google.maps.InfoWindow({ content: distance });
google.maps.event.addListener(marker, 'click', (function (marker, i) {
return function () {
infowindow.open(map, this);
}
})
(marker, i));
}
After debugging code and seeing value, my markers array contains string item like 调试代码并查看值后,我的markers数组包含类似的字符串项
somelatitude1__somelongitude1__address1_distance1
somelatitude2__somelongitude2__address2_distance2
somelatitude3__somelongitude3__address3_distance3
somelatitude4__somelongitude4__address4_distance4
now when markers contain above 4 value I plotted markers for that. 现在,当标记包含4个以上的值时,我将为此绘制标记。 but in InfoWindow
I am getting last element distance
array for every marker because of its Asynchronous nature. 但是在InfoWindow
由于它的异步特性,我得到了每个标记的最后一个元素distance
数组。 I have no idea how to handle this and show proper values in corresponding markers. 我不知道该如何处理并在相应的标记中显示适当的值。 Thanks. 谢谢。
pass the infowindow
as argument to the function that returns the click-callback: 将infowindow
作为参数传递给返回点击回调的函数:
google.maps.event.addListener(marker, 'click', (function (infowindow) {
return function () {
infowindow.open(map, this);
}
})(infowindow));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.