美文网首页
arcgis js 4 使用d3.js 构建扩散圆

arcgis js 4 使用d3.js 构建扩散圆

作者: haibalai | 来源:发表于2022-04-06 11:18 被阅读0次

    我们使用d3.js 与arcgis 构建扩散圆

    首先还是先定义数据结构

    let options = {

    renderer: {

    type: "simple",

    symbol: {

    r: 8,

    color2: "#476db6",

    color1: "#0f46ab",

    width: "1.5",

    time: "1200"

    }

    },

    data: [

    {

    geometry: [12702451.34188237, 2577586.8581332113],

    attributes: {

    name: "1号发散圆"

    }

    },

    {

    geometry: [12649387.05306244, 2562350.409717491],

    attributes: {

    name: "2号发散圆"

    }

    }

    ]

    };

    我们构建全局变量存储svg的圆

    this.graphics = new Array(); //存储外圆环

    this.centerCircles = new Array(); //存储中心圆

    this.expanCircles = new Array(); //存储五个扩散圆环

    this.poitChangeSvg = new Array();

    根据数据构建

    this.svg 是初始svg 全局容器 参考之前基础篇章

    toScreen方法 参考之前基础篇章

    ```javascript

    let data = this.options.data;

    for (let item of data) {

    let svg = this.svg;

    let symbol = this.options.renderer.symbol;

    let r1 = symbol.r * 3; //外圆环真实的半径

    let dis = r1/3; //扩散圆环半径差值

    let data = [r1-dis,r1,r1+dis,r1+2*dis,r1+3*dis]; //构建扩散圆环半径数组

    let max = Math.max(...data); //取得阈值

    let scale = d3.scaleLinear()

    .range([symbol.color2, symbol.color1]) //发散圆环颜色渐变范围

    .domain([0, max]); //阈值,渐变消失的判断

    //外圈的圆

    let graphic = svg.append("circle");

    graphic

    .attr("r", r1)

    .attr("fill", symbol.color1);

    let r2 = r1 / 30 * 22;

    //中心的圆

    let centerCircle = svg.append("circle");

    centerCircle

    .attr("r", r2)

    .attr("fill", symbol.color2);

    //一组扩散圆环

    let circles = svg.selectAll("body");

    let expanCircle = circles.data(data)

    .enter()

    .append("circle")

    //依次根据半径添加圆

    .attr("r", function (d) {

    return d;

    })

    .attr("fill", "none")

    .style("stroke-width", symbol.width) //扩散圆环粗细

     更多参考 https://xiaozhuanlan.com/topic/2451973608

    相关文章

      网友评论

          本文标题:arcgis js 4 使用d3.js 构建扩散圆

          本文链接:https://www.haomeiwen.com/subject/ffersrtx.html