Leaflet.js: Open all popup bubbles on page load

fooquency picture fooquency · Jan 28, 2012 · Viewed 21.9k times · Source

I'm trying to work out from the Leaflet.js docs how it would be possible to open more than one popup upon showing the page. For instance, if one had three markers (each representing a building), each one would have their popup opened immediately.

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

cryptically says:

"Use Map#openPopup to open popups while making sure that only one popup is open at one time (recommended for usability), or use Map#addLayer to open as many as you want."

but

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

gives no hints about how this might be achievable.

Can anyone clarify if this is possible, and give any hints on how to do it?

Answer

aborruso picture aborruso · Jan 29, 2012

You must add the popups as Layer. Try with this example code:

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);