(1) レイヤー グループと配列を追加して、レイヤーとレイヤーへの参照をグローバル変数として保持します。
var search_group = new L.LayerGroup(); var clickArr = new Array();
(2) マップを追加
(3)グループレイヤーを地図に追加
map.addLayer(search_group);
(4) マップへの追加機能。クリックすると削除オプションが表示されるリンクを含むポップアップが表示されます。このリンクは、ID としてポイントの緯度経度を持ちます。この ID は、作成したマーカーの 1 つをクリックして削除する場合と比較されます。
map.on('click', function(e) {
var clickPositionMarker = L.marker([e.latlng.lat,e.latlng.lng],{icon: idMarker});
clickArr.push(clickPositionMarker);
mapLat = e.latlng.lat;
mapLon = e.latlng.lng;
clickPositionMarker.addTo(search_group).bindPopup("<a name='removeClickM' id="+e.latlng.lat+"_"+e.latlng.lng+">Remove Me</a>")
.openPopup();
/* clickPositionMarker.on('click', function(e) {
markerDelAgain();
}); */
});
(5) remove 関数は、マーカーの緯度経度を remove で発生した ID と比較します。
$(document).on("click","a[name='removeClickM']", function (e) {
// Stop form from submitting normally
e.preventDefault();
for(i=0;i<clickArr.length;i++) {
if(search_group.hasLayer(clickArr[i]))
{
if(clickArr[i]._latlng.lat+"_"+clickArr[i]._latlng.lng==$(this).attr('id'))
{
hideLayer(search_group,clickArr[i]);
clickArr.splice(clickArr.indexOf(clickArr[i]), 1);
}
}
}