function normalizeVisualRange(thisOption, isCategory) {
	        var visual = thisOption.visual;
	        var visualArr = [];

	        if (zrUtil.isObject(visual)) {
	            each(visual, function (v) {
	                visualArr.push(v);
	            });
	        }
	        else if (visual != null) {
	            visualArr.push(visual);
	        }

	        var doNotNeedPair = {color: 1, symbol: 1};

	        if (!isCategory
	            && visualArr.length === 1
	            && !doNotNeedPair.hasOwnProperty(thisOption.type)
	        ) {
	            // Do not care visualArr.length === 0, which is illegal.
	            visualArr[1] = visualArr[0];
	        }

	        setVisualToOption(thisOption, visualArr);
	    }
@param {number} value
@param {Array.<Object>} pieceList [{value: ..., interval: [min, max]}, ...]
                        Always from small to big.
@param {boolean} [findClosestWhenOutside=false]
@return {number} index