我有一張地圖可以根據四個單選按鈕更改拼貼。我需要彈出窗口,當您在不同地圖圖層更改時滾動切片時會出現此窗口。我已經得到它,但當我切換圖層時,地圖只是添加了另一個彈出窗口。我嘗試使用control.removeFrom(地圖),但它似乎不工作。我認爲我的邏輯可能被搞亂了。下面是if語句之一:從leaflet.js添加/刪除L.control地圖
if (two == true && black == true) {
function blkNineStyle(feature) {
return {
fillColor: getColor(feature.properties.pctBlack9000),
weight: 2,
opacity: 1,
color: '#666',
dashArray: '2',
fillOpacity: 0.9
};
}
//Tried to us this to take off the control.
info.removeFrom(map);
map.removeLayer(geojson);
geojson = L.geoJson(tracts, {style: blkNineStyle, onEachFeature: onEachFeature}).addTo(map);
var info = L.control();
info.onAdd = function (map) {
this._div = L.DomUtil.create('div', 'info');
this.update();
return this._div;
};
info.update = function (props) {
this._div.innerHTML = '<h4>Percent White population change</h4>' + (props ? '<b>' + props.name + '</b><br />' + props.pctBlack9000 + '%' : 'Hover over a tract');
};
info.addTo(map);
}
你可以看到(碎)地圖here.
更新網址:http://leafletjs.com/reference-1.0.2.html#control -layers。 – Greg 2017-06-28 19:10:40
'info.remove()'起作用。我有類似的情況,檢查是否存在滑塊'if($('。opacity_slider_control')。is(':visible'))''在我的情況下,它是不透明度滑塊類的一部分,所以在我的情況下如果($('。opacity_slider_control')。(':visible')){ prevCurrentLayer.setOpacity(0.0)//某些設置不會被以下設置重置: opacitySlider.remove()//刪除任何現有的opacitySlider,然後在下一步添加新的 } addOpacitySlider(currentLayer) 我希望這不是太簡短 – Greg 2017-06-28 19:36:29