我在leaflet.js地图上创建了一个d3图表div:
<div id="map">
<div class="leaflet-bottom leaflet-left">
<div id="chart"></div>
</div>
</div>
leaflet-bottom leaflet-left
将div嵌入地图的左下角。我还添加了geojson,并且想知道在点击不同的geojson poylgon时如何更新div中的d3。目前,当我单击一个多边形时,它会显示条形图。但是当我点击另一个时它不会更新。为onEachFeature函数中的单击执行此操作的javascript是:
click: function(e){
var barnum = [];
var barcat = []
/* pm25 holds data to create d3 bar chart */
for(var i = 0; i < pm25.length; i++){
if(feature.properties.BoroCD == pm25[i][1]){
if(data[i].Year.startsWith('Annual')){
barnum.push(data[i].Mean);
barcat.push(data[i].Year);
}
}
}
var x = d3.scaleLinear()
.domain([0, d3.max(barnum)])
.range([0, 100])
d3.select("#chart")
.selectAll("div")
.data(barnum)
.enter().append("div")
.style("width", function(d) { return x(d) + "px"; })
.text(function(d) { return d; });
}
点击不同的多边形时,如何更新图表?我有完整的代码here
答案 0 :(得分:0)
您可以使用以下内容:
if ((p = strchr (line, ' '))) /* find first ' ' */
*p = 0; /* terminate at p */
printf ("%s - no tab\n", line); /* s has no tab */
if (p) /* if terminated */
*p = ' '; /* restore ' ' */
希望它有所帮助。除了点击,您还可以使用其他属性,例如&#34; mouseover&#34;,&#34; mouseout&#34;和&#34; mousedown&#34;