openlayers/theme/ThemeStyle.js Source
import {Zondy} from '../../service/common/Base';
import {extend} from '../../service/common/Util';

/**
 * @class Zondy.Map.ThemeStyle
 * @classdesc 客户端专题图风格类。
 * @param {Object} options - 可选参数。
 * @param {boolean} [options.fill=true] - 是否填充,不需要填充则设置为 false。如果 fill 与 stroke 同时为 false,将按 fill 与 stroke 的默认值渲染图层。
 * @param {string} [options.fillColor='#000000'] - 十六进制填充颜色。
 * @param {number} [options.fillOpacity=1] - 填充不透明度。取值范围[0, 1]。
 * @param {boolean} [options.stroke=false] -  是否描边,不需要描边则设置为false。如果 fill 与 stroke 同时为 false,将按 fill 与 stroke 的默认值渲染图层。
 * @param {string} [options.strokeColor='#000000'] - 十六进制描边颜色。
 * @param {number} [options.strokeOpacity=1] - 描边的不透明度。取值范围[0, 1]。
 * @param {number} [options.strokeWidth=1] - 线宽度/描边宽度。
 * @param {string} [options.strokeLinecap='butt'] - 线帽样式。strokeLinecap 有三种类型 “butt", "round", "square"。
 * @param {string} [options.strokeLineJoin='iter'] - 线段连接样式。strokeLineJoin 有三种类型 “miter", "round", "bevel"。
 * @param {string} [options.strokeDashstyle='solid'] - 虚线类型。strokeDashstyle 有八种类型 “dot",“dash",“dashdot",“longdash",“longdashdot",“solid", "dashed", "dotted"。solid 表示实线。
 * @param {number} [options.pointRadius=6] - 点半径,单位为像素。
 * @param {number} [options.shadowBlur=0] - 阴影模糊度,(大于 0 有效;)。注:请将 shadowColor 属性与 shadowBlur 属性一起使用,来创建阴影。
 * @param {string} [options.shadowColor='#000000'] - 阴影颜色。注:请将 shadowColor 属性与 shadowBlur 属性一起使用,来创建阴影。
 * @param {number} [options.shadowOffsetX=0] - 阴影 X 方向偏移值。
 * @param {number} [options.shadowOffsetY=0] - 阴影 Y 方向偏移值。
 * @param {string} options.label - 专题要素附加文本标签内容。
 * @param {string} [options.fontColor] - 附加文本字体颜色。
 * @param {number} [options.fontSize=12] - 附加文本字体大小,单位是像素。
 * @param {string} [options.fontStyle='normal'] - 附加文本字体样式。可设值:"normal", "italic", "oblique"。
 * @param {string} [options.fontVariant='normal'] - 附加文本字体变体。可设值:"normal", "small-caps"。
 * @param {string} [options.fontWeight='normal'] - 附加文本字体粗细。可设值:"normal", "bold", "bolder", "lighter"。
 * @param {string} [options.fontFamily='arial,sans-serif'] - 附加文本字体系列。fontFamily 值是字体族名称或/及类族名称的一个优先表,每个值逗号分割,浏览器会使用它可识别的第一个可以使用具体的字体名称("times"、"courier"、"arial")或字体系列名称"serif"、"sans-serif"、"cursive"、"fantasy"、"monospace")。
 * @param {string} [options.labelPosition='top'] - 附加文本位置, 可以是 'inside', 'left', 'right', 'top', 'bottom'。
 * @param {string} [options.labelAlign='center'] - 附加文本水平对齐。可以是 'left', 'right', 'center'。
 * @param {string} [options.labelBaseline='middle'] - 附加文本垂直对齐。 可以是 'top', 'bottom', 'middle' 。
 * @param {number} [options.labelXOffset=0] - 附加文本在x轴方向的偏移量。
 * @param {number} [options.labelYOffset=0] - 附加文本在y轴方向的偏移量。
 */
class ThemeStyle {


    constructor(options) {
        options = options || {};
        /**
         * @member {boolean} [Zondy.Map.ThemeStyle.prototype.fill=true]
         * @description 是否填充,不需要填充则设置为 false。如果 fill 与 stroke 同时为 false,将按 fill 与 stroke 的默认值渲染图层。
         */
        this.fill = true;
        /**
         * @member {string} [Zondy.Map.ThemeStyle.prototype.fillColor="#000000"]
         * @description 十六进制填充颜色。
         */
        this.fillColor = "#000000";
        /**
         *  @member {number} [Zondy.Map.ThemeStyle.prototype.fillOpacity=1]
         *  @description 填充不透明度。取值范围[0, 1]。
         */
        this.fillOpacity = 1;
        /**
         * @member {boolean} [Zondy.Map.ThemeStyle.prototype.stroke=false]
         * @description  是否描边,不需要描边则设置为false。如果 fill 与 stroke 同时为 false,将按 fill 与 stroke 的默认值渲染图层。
         */
        this.stroke = false;
        /**
         * @member {string} [Zondy.Map.ThemeStyle.prototype.strokeColor="#000000"]
         * @description  十六进制描边颜色。
         */
        this.strokeColor = "#000000";
        /**
         * @member {number} [Zondy.Map.ThemeStyle.prototype.strokeOpacity=1]
         * @description  描边的不透明度。取值范围[0, 1]。
         */
        this.strokeOpacity = 1;
        /**
         * @member {number} [Zondy.Map.ThemeStyle.prototype.strokeWidth=1]
         * @description  线宽度/描边宽度。
         */
        this.strokeWidth = 1;
        /**
         * @member {string} [Zondy.Map.ThemeStyle.prototype.strokeLinecap="butt"]
         * @description  线帽样式;strokeLinecap 有三种类型 “butt", "round", "square" 。
         */
        this.strokeLinecap = "butt";
        /**
         * @member {string} [Zondy.Map.ThemeStyle.prototype.strokeLineJoin="miter"]
         * @description  线段连接样式;strokeLineJoin 有三种类型 “miter", "round", "bevel"。
         */
        this.strokeLineJoin = "miter";
        /**
         * @member {string} [Zondy.Map.ThemeStyle.prototype.strokeDashstyle="solid"]
         * @description   虚线类型; strokeDashstyle 有八种类型 “dot",“dash",“dashdot",“longdash",“longdashdot",“solid", "dashed", "dotted";
         * solid 表示实线。
         */
        this.strokeDashstyle = "solid";
        /**
         * @member {number} [Zondy.Map.ThemeStyle.prototype.pointRadius=6]
         * @description   点半径。单位为像素。
         */
        this.pointRadius = 6;
        /**
         * @member {number} [Zondy.Map.ThemeStyle.prototype.shadowBlur=0]
         * @description   阴影模糊度,(大于 0 有效)。注:请将 shadowColor 属性与 shadowBlur 属性一起使用,来创建阴影。
         */
        this.shadowBlur = 0;
        /**
         * @member {string} [Zondy.Map.ThemeStyle.prototype.shadowColor='#000000']
         * @description  阴影颜色。注:请将 shadowColor 属性与 shadowBlur 属性一起使用,来创建阴影。
         */
        this.shadowColor = "#000000";
        /**
         * @member {number} [Zondy.Map.ThemeStyle.prototype.shadowOffsetX=0]
         * @description 阴影 X 方向偏移值。
         */
        this.shadowOffsetX = 0;
        /**
         * @member {number} Zondy.Map.ThemeStyle.prototype.shadowOffsetY
         * @description Y 方向偏移值。
         */
        this.shadowOffsetY = 0;
        /**
         * @member {string} [Zondy.Map.ThemeStyle.prototype.label]
         * @description 专题要素附加文本标签内容。
         */
        this.label = "";
        /**
         * @member {boolean} [Zondy.Map.ThemeStyle.prototype.labelRect=false]
         * @description 是否显示文本标签矩形背景。
         */
        this.labelRect = false;
        /**
         * @member {string} [Zondy.Map.ThemeStyle.prototype.fontColor]
         * @description 附加文本字体颜色。
         */
        this.fontColor = "";
        /**
         * @member {number} [Zondy.Map.ThemeStyle.prototype.fontSize=12]
         * @description 附加文本字体大小,单位是像素。
         */
        this.fontSize = 12;
        /**
         * @member {string} [Zondy.Map.ThemeStyle.prototype.fontStyle="normal"]
         * @description 附加文本字体样式。可设值:"normal", "italic", "oblique"。
         */
        this.fontStyle = "normal";
        /**
         * @member {string} [Zondy.Map.ThemeStyle.prototype.fontVariant="normal"]
         * @description 附加文本字体变体。可设值:"normal", "small-caps"。
         */
        this.fontVariant = "normal";
        /**
         * @member {string} [Zondy.Map.ThemeStyle.prototype.fontWeight="normal"]
         * @description 附加文本字体粗细。可设值:"normal", "bold", "bolder", "lighter"。
         */
        this.fontWeight = "normal";
        /**
         * @member {string} [Zondy.Map.ThemeStyle.prototype.fontFamily="arial,sans-serif"]
         * @description 附加文本字体系列。fontFamily 值是字体族名称或/及类族名称的一个优先表,每个值逗号分割,浏览器会使用它可识别的第一个
         * 可以使用具体的字体名称("times"、"courier"、"arial")或字体系列名称("serif"、"sans-serif"、"cursive"、"fantasy"、"monospace")。
         */
        this.fontFamily = "arial,sans-serif";
        /**
         * @member {string} [Zondy.Map.ThemeStyle.prototype.labelPosition='top']
         * @description 附加文本位置, 可以是 'inside', 'left', 'right', 'top', 'bottom'。
         */
        this.labelPosition = "top";
        /**
         * @member {string} [Zondy.Map.ThemeStyle.prototype.labelAlign='center']
         * @description 附加文本水平对齐。可以是 'left', 'right', 'center'。
         */
        this.labelAlign = "center";
        /**
         * @member {string} [Zondy.Map.ThemeStyle.prototype.labelBaseline='middle']
         * @description  附加文本垂直对齐。 可以是 'top', 'bottom', 'middle'。
         */
        this.labelBaseline = "middle";
        /**
         * @member {number} [Zondy.Map.ThemeStyle.prototype.labelXOffset=0]
         * @description  附加文本在 X 轴方向的偏移量。
         */
        this.labelXOffset = 0;
        /**
         * @member {number} [Zondy.Map.ThemeStyle.prototype.labelYOffset=0]
         * @description 附加文本在 Y 轴方向的偏移量。
         */
        this.labelYOffset = 0;

        extend(this, options);
    }
}

export {ThemeStyle};
Zondy.Map.ThemeStyle = ThemeStyle;