0
リーフレットを使って簡単なマップ実装を書いていますが、ちょっとしたぶつかりがあります。マップをセットアップしようとしていて、チェックボックスの選択に基づいてラベルを表示するカスタムコントロールを追加しました(ポップアップが表示されます)。リーフレットはマーカにバインドせずに複数のポップアップを開く
私のカスタムコントロールはそうのようなものです:
var checkBoxControl = L.Control.extend({ options: { position: 'topright' }, onAdd: function (map) { var container = L.DomUtil.create('input', 'leaflet-control'); container.style.backgroundColor = 'white'; container.id = 'labels_checkbox'; container.style.width = '30px'; container.style.height = '30px'; container.label = "Labels"; container.type = 'checkbox'; container.onclick = function() { var checkBox = $("#labels_checkbox"); var checkBoxValue = checkBox[0]; var labelsChecked = checkBoxValue.checked; var bounds = mymap.getBounds(); for (var i = 0; i < markers.length; i++) { marker = markers[i].mark; if (bounds.contains(marker.getLatLng())) { var previewLabel = markers[i].previewLabel; if (labelsChecked == true) { console.log('previewLabel', previewLabel); mymap.addLayer(previewLabel).fire('popupopen'); } else { previewLabel.close(); } } } }; return container; } });
私はマップがこれらのマーカーを開けません。しかし、それはすべての周りのマーカーをフェッチしているというのが私のコンソールごとに見ることができますか?
マーカーにバインドせずにポップアップを開く方法はありますか?あなたがポップアップを自動的に閉じるのを防ぐために行動をL.Map変更する必要が
おかげ
感謝を参照してください!それはトリックでした! – liamjnorman
優れています。それがあなたを助けたら答えを受け入れてください。 – YaFred