1
私は異なる場所のリストを持っています。マークのレイヤーをマップから削除した後、以前と同じ位置のマーカーの新しいレイヤーを作成する関数がトリガーされ、選択された場所に異なるアイコンが使用されます。リーフレット:レイヤー内のマーカーにアクセスして更新する方法
私の問題は、レイヤーを削除して追加するのではなく、特定のマーカーのアイコンを更新するだけですが、アクセスする方法が見つからないということです。
誰かが.eachLayer関数でこれが可能であると述べましたが、これはマーカーではなくレイヤーを制御するためにどのように見えますか。
markers = new L.featureGroup();
function updateMarker(locations, clickedID){
//Adding all markers on map
for (var i = 0; i < locations.length; i++)
{
//red marker for the selected location
if (locations[i][2] == clickedID){
marker = new L.marker([locations[i][0],locations[i][1]],{
icon: redIcon})
.bindPopup(locations[i][3]);
markers.addLayer(marker);
}
else{
//add regular marker
marker = new L.marker([locations[i][0],locations[i][1]])
.bindPopup(locations[i][3])
.addTo(map);
markers.addLayer(marker);
}
} ;
map.addLayer(markers);
}
だから、私はleafletjsレイヤーの代わりにリストを使用し、地図上の各マーカーを別々に追加する必要がありますか? もしsetIcon()がマーカーのアイコンを即座に更新するならば、私はそれが仕事をすると思います。ありがとうございました。 – Sky
はい。私は答えを – YaFred
更新しました。ありがとうございました。 :)デフォルトのアイコンを戻す簡単な方法があるのか、それとも青いアイコンで新しいカスタムアイコンを作成する必要があるのでしょうか? – Sky