javascript - Google map - 多个 InfoWindows

标签 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 = 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));

            }

调试代码并查看值后,我的标记数组包含类似的字符串项目

somelatitude1__somelongitude1__address1_distance1
somelatitude2__somelongitude2__address2_distance2
somelatitude3__somelongitude3__address3_distance3
somelatitude4__somelongitude4__address4_distance4

现在,当标记包含以上 4 个值时,我会为其绘制标记。但在 InfoWindow 中,由于其异步性质,我正在获取每个标记的最后一个元素 distance 数组。我不知道如何处理这个问题并在相应的标记中显示正确的值。谢谢。

最佳答案

infowindow 作为参数传递给返回点击回调的函数:

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

关于javascript - Google map - 多个 InfoWindows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24735562/

相关文章:

javascript - 我如何访问requirejs中定义之外的变量

javascript - Express 路由器 : Router. use() 需要一个中间件函数但得到一个对象

jquery - 带 Bootstrap 的 Google map (类 - 缩略图)

javascript - 使用 QtWebKit 在桌面应用程序中检索 google maps v3 标记到 Qt 的位置

java - 谷歌的距离矩阵API也考虑 "Elevation"吗?

javascript - Google Maps API - map 未加载

javascript - 将地理编码器结果保存到数组 - 关闭问题

javascript - event.keycode 与 event.which

javascript - 在街景 View 中设置标记并清除它们

javascript - 为什么这个简单的谷歌地图代码不起作用?