mapbox显示多个工具提示onload

时间:2014-06-13 17:36:10

标签: javascript leaflet mapbox

我试图显示每个地图标记的工具提示onload,而无需悬停或点击显示它。这是我尝试将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();
});

如何显示所有标记onload?

1 个答案:

答案 0 :(得分:1)

不幸的是,这是弹片在传单中的工作原理。

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/