javascript - 如何在旧的之上显示更新的谷歌地图信息窗口

标签 javascript jquery html css google-maps

我正在使用 Google Map 动态添加 InfoWindows。问题是,当两个 InfoWindows 重叠时,最近的不会总是在旧的之上。

如何确保后一个 InfoWindow 始终显示在所有其他使用 Javascript/jQuery 的 InfoWIndows 之上?

当我通过 websocket 接收到新的图像和坐标时,InfoWindows 被添加。这是我的代码:

function addToMap(image) {
    console.log("In addToMap...");

    coordinates = image[2].split(',');
    pin=new google.maps.LatLng(coordinates[0], coordinates[1]);

    if(marker) {
        marker.setMap(null);
    }

    var markerIcon = image_car_icon;

    marker=new google.maps.Marker({
        position:pin,
        zIndexProcess: function( m )
        {
            return 9999999 + pin_count;
        },
        icon:markerIcon
    });

    marker.setMap(map);

    map.setCenter(marker.getPosition());

    pin_count++;

    if(image[0] != "NOP") {
        popup = new google.maps.InfoWindow({
            content:'<image id="pin_' + pin_count + '" src="data:image/png;base64,' + image[1] +'"/>',
        });

        popup.open(map, marker);
    }
}

弹出窗口是我获取新图像时创建的信息窗口。假设两个图像具有几乎相同的坐标,我希望第二个 InfoWindow 位于顶部(z-index)。但是,大多数情况下,第一个窗口位于顶部。

最佳答案

我找到了解决办法。我正在使用图像作为句柄手动修改标记的 z-index。 marker_count 是一个运行标记,因此 z-index 将大于前一个标记。

google.maps.event.addListener(popup, 'domready', function() {
    console.log("DOM READY...........................");

    // Bring latest Image to top            
    e = $('#pin_' + img_count).parent().parent().parent().parent();

    e.css({
        'z-index' : (99999 + marker_count),
    });
});

关于javascript - 如何在旧的之上显示更新的谷歌地图信息窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14001475/

相关文章:

javascript - 如何停止 jQuery 函数 mouseenter() 和 mouseleave() 的重复?

javascript - `$.post` 有多少是阻塞的?

html - 即使宽度和高度发生变化,也将 div 置于页面中央

jQuery 从选定的下拉列表中获取值

javascript - 如何使用JQuery在另一个div中找到div的宽度

javascript - 如何在标记谷歌地图中添加地址?

javascript - 如何用wordpress中的特定类替换p标签中的内容?

javascript - Facebook API 错误 100 - 无效链接

javascript - 删除 bootstrap 标签输入中的 "x"

javascript - Mongoose.findOne 不返回任何内容,为什么?