首页 / 浏览问题 / 云GIS / 问题详情
柱状图当增加到底六个字段报bar.js报颜色的遍历
2EXP 2018年10月27日
颜色代码遍历的错误

代码:

 //以防定义的颜色数组不够用
                    if(index > barLinearGradient.length) index = index % barLinearGradient.length;
                    var color1 = barLinearGradient[index][0];
                    var color2 = barLinearGradient[index][1];
错误提示:

Uncaught TypeError: Cannot read property '0' of undefined
    at initialize.resetLinearGradient (Bar.js:340)
    at initialize.resetLocation (eval at <anonymous> (SuperMap-8.1.1-14426.js:3), <anonymous>:1:1389947)
    at initialize.drawCharts (eval at <anonymous> (SuperMap-8.1.1-14426.js:3), <anonymous>:1:1376507)
    at initialize.redrawThematicFeatures (eval at <anonymous> (SuperMap-8.1.1-14426.js:3), <anonymous>:1:1375194)
    at initialize.moveTo (eval at <anonymous> (SuperMap-8.1.1-14426.js:3), <anonymous>:1:1363108)
    at initialize.moveTo (eval at <anonymous> (SuperMap-8.1.1-14426.js:3), <anonymous>:1:53447)
    at initialize.setCenter (eval at <anonymous> (SuperMap-8.1.1-14426.js:3), <anonymous>:1:48968)
    at initialize.wheelChange (eval at <anonymous> (SuperMap-8.1.1-14426.js:3), <anonymous>:1:235037)
    at initialize.wheelDown (eval at <anonymous> (SuperMap-8.1.1-14426.js:3), <anonymous>:1:235181)
    at initialize.callback (eval at <anonymous> (SuperMap-8.1.1-14426.js:3), <anonymous>:1:186366)

1个回答

您好,您可以发一下完整代码吗?
5,668EXP 2018年10月29日

你好,这个是Bar.js中的代码,红色的这行代码报错:


    /**
     * Method: resetLinearGradient
     * 图表的相对坐标存在的时候,重新计算渐变的颜色
     * PS: (目前用于二维柱状图 所以之类实现此方法)
     */
    resetLinearGradient: function(){
        if(this.RelativeCoordinate){
            var shpelength = this.shapes.length;
            var barLinearGradient = this.setting.barLinearGradient;
            var index = -1;
            for(var i = 0;i<shpelength;i++){
                var shape = this.shapes[i];
                if(shape.CLASS_NAME === "SuperMap.LevelRenderer.Shape.SmicPolygon"){
                    var style = shape.style;
                    //计算出当前的绝对 x y
                    var x1 = this.location[0] + style.pointList[0][0];
                    var x2 = this.location[0] + style.pointList[1][0];

                    //渐变颜色
                    index++;
                    //以防定义的颜色数组不够用
                    if(index > barLinearGradient.length) index = index % barLinearGradient.length;
                    var color1 = barLinearGradient[index][0];
                    var color2 = barLinearGradient[index][1];

                    //颜色
                    var zcolor = new SuperMap.LevelRenderer.Tool.Color();
                    var linearGradient = zcolor.getLinearGradient(x1, 0, x2, 0,
                        [[0, color1],[1,color2]]);

                    //赋值
                    shape.style.color = linearGradient;
                }
            }
        }},

    CLASS_NAME: "SuperMap.Feature.Theme.Bar"
});
 

您用的是什么版本的?
您下一个910版本的,然后把里面的bar.js替换一下8c里面的。
910版本里面没有bar.js
有的,您在整个文件夹里搜索bar.js就能找到了
...