Leaflet.minicharts.jsプラグインでpiechartを作成しました。 チャートを追加するのに問題ありません。 しかし、私はもはやそれを取り除くことができません。 map.removeLayer(chart[i])
で各グラフを個別に削除しようとしました。 また、すべてのチャートをレイヤーグループにまとめて、map.removeLayer(LayerGroup)
という関数とlayergorup.clearLayers()
という関数を使用しました。関数map.hasLayer(layer)
を呼び出すと、false
が返されます。だから、すべて期待どおり。しかし、地図はまだ地図上に表示されています。 ここでは、ボタンクリックで削除しようとするbarchartの簡単な例を示します。リーフレットのミニチャレットを削除
<html>
<head>
<title>Leaflet Test</title>
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css"
integrity="sha512-wcw6ts8Anuw10Mzh9Ytw4pylW8+NAD4ch3lqm9lzAsTxg0GFeJgoAtxuCLREZSC5lUXdVyo/7yfsqFjQ4S+aKw=="
crossorigin=""/>
<script src="https://unpkg.com/[email protected]/dist/leaflet.js"
integrity="sha512-mNqn2Wg7tSToJhvHcqfzLMU6J4mkOImSPTxVZAdo+lcPlk+GhZmYgACEe0x35K7YzW1zJ7XyJV/TT1MrdXvMcA=="
crossorigin=""></script>
<script src="https://unpkg.com/leaflet.minichart/dist/leaflet.minichart.min.js" charset="utf-8"></script>
</head>
<body>
<!-- CSS -->
<style type="text/css">
#mapid { height: 480px; }
#butt {color:black;position: absolute;padding:2em;top:50%; left:50%;}
</style>
<div id="mapid"></div>
<button id="butt" onclick="vanish();">Remove Chart!</button>
<script type="text/javascript">
var map = L.map('mapid').setView([50, 9], 14);
var tiles = L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors',
}).addTo(map);
var center = [50, 9];
function fakeData() {
return [Math.random(), Math.random(), Math.random()];
}
var myBarChart = L.minichart(center, {data: fakeData()});
map.addLayer(myBarChart);
function vanish(e) {
console.log(map.hasLayer(myBarChart));
map.removeLayer(myBarChart);
console.log(map.hasLayer(myBarChart));
}
</script>
</body>
</html>