首页 > 解决方案 > HTML5 地理位置信息窗口不起作用

问题描述

我需要用这段代码创建信息窗口,我缺乏应用程序逻辑并且对编程来说是全新的我使用这个开源代码

此代码将用户连同他们的标记一起添加到地图中

    function loadMarkers(data) {
    for(key in data) {
        var user = data[key];
        xmartlabschat.addUser(user);
        markers[key] = getMarker(user.lat, user.lng, user.name);
    }
}

我尝试使用 info-window 的基本代码

var infoWindow = new google.maps.InfoWindow(user.name);
markers[key].addListener('click', function(){
        infoWindowMe.open(map,markers[key);

但是,此代码将所有标记转换为与用户相同的名称,而不是不同的名称,因为我单击其他用户标记

请帮忙 看一下我拍的截图

标签: javascriptgoogle-maps-api-3infowindow

解决方案


你可以试试这个。希望这可以帮助。

var locations = [
['Location name', LAT, LON],
['...', ..., ...],
//...
];

var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 8,
    center: new google.maps.LatLng(LAT, LON),
    mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();

var marker, i; 
for (i = 0; i < locations.length; i++) {
    var lat = locations[i][1];
    var lng = locations[i][2];
    marker = new google.maps.Marker({
        position: new google.maps.LatLng(lat, lng),
        map: map,
    }); // generates all the markers
    google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
            zIndex: 1000;
            infowindow.setContent(locations[i][0]); // replace locations[i][0] with which data you want to show
            infowindow.open(map, marker);
        }
    })(marker, i)); // generates corresponding info-window
}   

推荐阅读