D3j——line的绘制

_plotPolygons(polygon, container) {
    const idList = [];
    polygon.coordinates.forEach((coords) => {
      const id = generateId();
      idList.push(id);

      // 使用 curveLinearClosed 确保路径闭合,决定了数据缩放和绘制方式。
      const lineGenerator = d3.line()
        .x((d) => d[0] * this._zx)
        .y((d) => d[1] * this._zy)
        .curve(d3.curveLinearClosed); // 自动闭合路径
        //如果使用d3.curveLinear就首尾不闭合

      const path = container
        .append('path')
        .data([coords])
        .attr('id', id)
        // 使用修改后的 lineGenerator
        .attr('d', lineGenerator)
        .attr('stroke', polygon.properties.color ?? "red")
        .attr('stroke-width', 2)
        .classed('polygon-path', true);

      if (polygon.properties.type === 'CarBoundary') {
        path.attr('fill', 'none');  
      } else {
        path
          .attr('fill', 'white')
          .attr('fill-opacity', 0.5);
      }
    });
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值