javascript - Mapbox在加载时显示多个工具提示

标签 javascript leaflet mapbox

我试图在加载时显示每个 map 标记的工具提示,而无需悬停或单击即可显示它。这是我尝试将 openPopup 函数链接到 bindPopup 的尝试:

function onEachFeature(feature, layer) {
        if (feature.properties && feature.properties.popupContent) {
            popupContent = feature.properties.popupContent;
        }
        layer.bindPopup(popupContent).openPopup();
    }

但是除非单击,否则工具提示不会出现。

fiddle

我看到this page文档提供了以下功能,但它仅适用于单个标记,而不是多个标记。

marker.eachLayer(function(m) {
  m.openPopup();
});

如何在加载时显示所有标记?

最佳答案

不幸的是,这就是传单中弹出窗口的工作方式。

https://stackoverflow.com/a/16707921/128165 中提供了一个小技巧。

/***  little hack starts here ***/
L.Map = L.Map.extend({
    openPopup: function (popup) {
        //        this.closePopup();  // just comment this
        this._popup = popup;

        return this.addLayer(popup).fire('popupopen', {
            popup: this._popup
        });
    }
}); /***  end of hack ***/

将其添加到代码中后,您就可以使用

for (var o in overlays){
    overlays[o].eachLayer(function (m) {
        m.eachLayer(function(l){l.openPopup();});
    });
}

迭代您案例中的所有标记并调用其 openPopup 方法

演示位于 http://jsfiddle.net/46f2r/6/

关于javascript - Mapbox在加载时显示多个工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24210943/

相关文章:

leaflet - Mapbox/Leaflet map 旋转

javascript - 传单 - 如何自动删除以前的标记

javascript - 如何将 "inject"变量转入匿名函数

javascript - 修改正则表达式以允许负数

R 在 Leaflet 中使用热图

python - 如何按位置实时将推文绘制到 map 上,例如传单

mapbox - 如何使用mapbox选择一个位置后关闭搜索结果

javascript - 如何将图表旋转 90 度,包括文本值?

javascript - ajax 有不同的风格吗?

javascript - 单击 map 上的属性时打开特定选项卡?