0
我有我的数据库中存储的图层样本,我试图在面板中显示此图层的名称,每个图层都与一个复选框相关联。当我检查每个checkbow时,我想在地图上添加其对应图层,并在复选框未选中时将其从地图中删除。我的问题是我无法从地图中删除图层。 这里是我的PHP和jQuery代码片段:使用复选框打开和关闭图层
** jQuery的文件**
$.get($("#myForm5").attr("action"),
$("#myForm5 :input").serializeArray(),
function(data) {
$("#Liste").html(data);
$('input[id^="DisplayCheckbox"]').on('change', function()
{
var CoordItem = $(this).parents("div.parent").find("li#Lis te").text();
var content = $(this).val();
var DataItem = $(this).parents("div.parent").find("li#ListeData").text();
var array = DataItem.split(',');
var dataDomaine = $.parseJSON(CoordItem);
var geojsonFeature =
{
"type": "Feature",
"properties": {
"name": content,
},
"geometry": {
"type": dataDomaine.type,
"coordinates":dataDomaine.coordinates
}
};
var layer = L.geoJson(geojsonFeature);
if($(this).is(":checked"))
{
layer.addTo(map);
map.fitBounds(layer.getBounds());
}else
{
map.removeLayer(layer);
});//end change checkbox
});//end get function
PHP文件
<?php
......
echo '<ul>'
echo '<div id="' . $row2['nom'] . '" class="col-sm-10 parent"><li class="Liste" id="idListe">' . $row2['nom'] . '</li>
<div class="checkbox DisplayLayer">
<label><input type="checkbox" name="id" id="DisplayCheckbox" value="' . $row2['nom'] . '"></label></div>
<li id="ListeData" name="id" style="display:none;">' . $tostring. '</li>';
.......
echo '<li id="ListeGeom" name="id" style="display:none;">' . $row3[0]. '</li></div><br/>';
echo '</ul>
?>
我会尽力的,谢谢@Sebastian舒尔茨 – nermiiine
我面临的一个问题,我无法弄清楚如何动态地创建此ID,因为层添加到动态映射当每个复选框被选中,我不知道如何更改每个图层的图层ID。你能帮我吗? – nermiiine
我还没有找到解决我的问题 – nermiiine