15

Leaflet.jsのドキュメントから、ページを表示するときに複数のポップアップを開くことができる方法を見つけようとしています。たとえば、3つのマーカー(それぞれが建物を表す)がある場合、各マーカーのポップアップがすぐに開きます。

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

不可解に言う:

「Map#openPopupを使用してポップアップを開き、一度に1つのポップアップのみが開いていることを確認します(使いやすさのために推奨)。または、Map#addLayerを使用して必要な数だけ開きます。」

しかし

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

これがどのように達成できるかについてのヒントはありません。

誰かがこれが可能かどうかを明確にし、それを行う方法について何かヒントを与えることができますか?

4

5 に答える 5

12

ポップアップをレイヤーとして追加する必要があります。このコード例を試してください:

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);
于 2012-01-29T11:59:02.957 に答える
-1

最新バージョンでは、autoClose オプションがあります。

レイヤーを明示的に追加せずに、マーカーとポップアップの両方を同時に開くには:

var popup1 = new L.Popup({'autoClose':false});
popup1.setLatLng([53.55375, 9.96871]);
popup1.setContent('First popup');

var popup2 = new L.Popup({'autoClose':false});
popup2.setLatLng([53.552046, 9.9132]);
popup2.setContent('Second popup');

L.marker([53.55375, 9.96871]).addTo(myMap)
    .bindPopup(popup1).openPopup();

L.marker([53.552046, 9.9132]).addTo(myMap)
    .bindPopup(popup2).openPopup();
于 2016-09-09T13:12:29.450 に答える