d3.js地图线被打断了

时间:2016-07-20 23:30:18

标签: javascript d3.js

我正在开发d3.js地图。我在几个国家绘制点,我用弧线连接这些点。问题是有些弧被中断了。

Interrupted arcs on map



 gArcs.append("path")
   .datum({
     type: "LineString",
     coordinates:[
       [data.dataArray[i].long_from, data.dataArray[i].lat_from], 
       [data.dataArray[i].long_to, data.dataArray[i].lat_to]
     ]
   })
   .attr("class", "arc")
   .attr("d", path)
   .style({
     'stroke': lineColor,
     'stroke-width':lineWidth,
   })




关于如何在不中断的情况下绘制弧线的任何想法?

1 个答案:

答案 0 :(得分:0)

最后,我选择了解决方案,在地图上绘制带有投影点的直线,以避免间断弧线。

features.selectAll("path")
  .data(data.dataArray)
  .enter().append("line")
  .filter(function(d) {
    return d.country_name_from == countryNameFrom
  })
  .attr("x1", function (d) {
    return projection([d.long_from,d.lat_from])[0];
  })
  .attr("y1", function (d) {
    return projection([d.long_from,d.lat_from])[1];
  })
  .attr("x2", function (d) {
    return projection([d.long_to,d.lat_to])[0];
  })
  .attr("y2", function (d) {
    return projection([d.long_to,d.lat_to])[1];
  })
  .attr("d", path)
  .style({
    'stroke': lineColor,
    'stroke-width':lineWidth,
  })