Leaflet.js:打开页面加载时的所有弹出气泡

foo*_*ncy 12 map cloudmade

我正在尝试从Leaflet.js文档中解决如何在显示页面时打开多个弹出窗口.例如,如果一个人有三个标记(每个标记代表一个建筑物),每个标记都会立即打开它们的弹出窗口.

http://leaflet.cloudmade.com/reference.html#popup

密码说:

"使用Map#openPopup打开弹出窗口,同时确保一次只打开一个弹出窗口(推荐用于可用性),或者使用Map#addLayer打开任意数量的弹出窗口."

http://leaflet.cloudmade.com/reference.html#map-addlayer

没有提供关于如何实现这一点的提示.

任何人都可以澄清这是否可能,并给出任何关于如何做的提示?

abo*_*uso 10

您必须将弹出窗口添加为图层.试试这个示例代码:

var popupLocation1 = new L.LatLng(51.5, -0.09);
var popupLocation2 = new L.LatLng(51.51, -0.08);

var popupContent1 = '<p>Hello world!<br />This is a nice popup.</p>',
popup1 = new L.Popup();

popup1.setLatLng(popupLocation1);
popup1.setContent(popupContent1);

var popupContent2 = '<p>Hello world!<br />This is a nice popup.</p>',
popup2 = new L.Popup();

popup2.setLatLng(popupLocation2);
popup2.setContent(popupContent2);

map.addLayer(popup1).addLayer(popup2);
Run Code Online (Sandbox Code Playgroud)


gie*_*s0r 10

L.Map = L.Map.extend({
    openPopup: function(popup) {
        // this.closePopup(); 
        this._popup = popup;
        return this.addLayer(popup).fire('popupopen', {
            popup: this._popup
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

示例:http://jsfiddle.net/paulovieira/yVLJf/

在这里找到它:https://groups.google.com/forum/#!msg/leaflet-js/qXVBcD3juL4/4pZXHTv1baIJ

  • 这不适用于当前版本 (2认同)

thi*_*hnk 6

marker.addTo(myMap).bindPopup('Hello popup', {autoClose:false}).openPopup();
Run Code Online (Sandbox Code Playgroud)

使用autoClose选项