Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图-多个信息窗口_Javascript_Google Maps_Google Maps Api 3_Infowindow - Fatal编程技术网

Javascript 谷歌地图-多个信息窗口

Javascript 谷歌地图-多个信息窗口,javascript,google-maps,google-maps-api-3,infowindow,Javascript,Google Maps,Google Maps Api 3,Infowindow,我有如下javascript代码 var markers = response.d.split('^^'); var latlng = new google.maps.LatLng(51.474634, -0.195791); var mapOptions1 = { zoom: 14, center: latlng } var map

我有如下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));

            }

现在,当标记包含大于4的值时,我为此绘制了标记。但是在
InfoWindow
中,我得到了每个标记的最后一个元素
distance
数组,因为它是异步的。我不知道如何处理这个问题,并在相应的标记中显示正确的值。谢谢。

信息窗口作为参数传递给返回单击回调的函数:

            google.maps.event.addListener(marker, 'click', (function (infowindow) {
                return function () {
                    infowindow.open(map, this);
                }
            })(infowindow));

输入数据是什么样子的?你能提供一份工作吗?
            google.maps.event.addListener(marker, 'click', (function (infowindow) {
                return function () {
                    infowindow.open(map, this);
                }
            })(infowindow));