1

leaflet-control-search を使用してマーカーを検索しています。マーカーはこのような配列に格納されます

var mymarkers = [{"loc": [lat,lng], "name": "a"},{"loc": [lat,lng], "name": "b"}];

この配列をループして、「markersLayer」という layerGroup に配置します。
leaflet-control-search で 1 つのレイヤーグループしか検索できないため、「markersLayer」でマーカーを動的に追加/削除しています。

検索制御はこのように初期化されています

var searchControl = new L.Control.Search({layer: markersLayer, propertyName: "name", circleLocation:true});

「markersLayer」にマーカーを追加し、マーカーを検索すると、このマーカーが丸で囲まれて表示されます。マーカーを削除して「markersLayer」に戻すと、leaflet-control-search は、検索時にマーカーを丸で囲みません。

次に、代わりに見つかったマーカーでポップアップを開くことができるのではないかと考えました。「search_locationfound」というイベントがあります。だから私は試しました:

searchControl.on('search_locationfound', function(e) {

    e.marker.openPopup();

});

しかし、何も起こりません。誰かが私を助けてくれることを願っています。

4

0 に答える 0