holdtom
我忘记调整 html 中的坐标和lat轴long,就像我在圆圈中所做的那样。xy基本上这是我的结果:d3.select("#mapid") .select("svg") .selectAll("line") .data(links) .enter() .append("line") .attr("x1", function(d) { return map.latLngToLayerPoint([d.source.lat, d.source.long]).x}) .attr("y1", function(d) { return map.latLngToLayerPoint([d.source.lat, d.source.long]).y}) .attr("x2", function(d) { return map.latLngToLayerPoint([d.target.lat, d.target.long]).x}) .attr("y2", function(d) { return map.latLngToLayerPoint([d.target.lat, d.target.long]).y}) .style("stroke", function(d, i) { if(d.fraude == 2) { return "rgb(197,53,53)"} else { return "rgb(96,211,62"} }) .style("stroke-width", 5) 我还必须更新功能更新,因为如果我不这样做,线条将始终保留在框架中:function update() {d3.selectAll("circle") .attr("cx", function(d){ return map.latLngToLayerPoint([d.lat, d.long]).x }) .attr("cy", function(d){ return map.latLngToLayerPoint([d.lat, d.long]).y })d3.selectAll("line") .attr("x1", function(d) { return map.latLngToLayerPoint([d.source.lat, d.source.long]).x}) .attr("y1", function(d) { return map.latLngToLayerPoint([d.source.lat, d.source.long]).y}) .attr("x2", function(d) { return map.latLngToLayerPoint([d.target.lat, d.target.long]).x}) .attr("y2", function(d) { return map.latLngToLayerPoint([d.target.lat, d.target.long]).y})}