# 专题服务

# 配置规范

// 这个文件描述专题服务微件配置信息
{
  // 基础配置
  "baseConfig": {
    // IP地址
    "baseIp": "develop.smaryun.com",
    // Port端口
    "basePort": "6163",
    // 图层是否叠加
    "isOverlay": true,
    // 图层是否定位
    "isLocation": true,
    // 初始 index 级别
    "startZindex": 100
  },
  // 专题配置,数组结构,子元素表示一大类专题
  "subjectConfig": [
    {
      // 该类专题id
      "id": "115dc807-63d6-91e4-93a9-31cadb98af60",
      // 该类专题名称
      "title": "社会经济服务",
      // 该类专题可见性
      "visible": true,
      // 节点类型,详见下方“支持的节点类型”(该类专题类型不可修改,因为通常以面板形式呈现,所以命名为 panel)
      "nodeType": "panel",
      // 一类专题可以包含多个专题列表或多个专题,数组结构
      "children": [
        // 下面表示一个专题集合
        {
          // 该专题集合id
          "id": "92fd7586-e248-c105-918d-843fb090e24a",
          // 该专题集合名称
          "title": "人口",
          // 该专题集合可见性
          "visible": true,
          // 节点类型,详见下方“支持的节点类型”(list 表示这是一个专题列表)
          "nodeType": "list",
          // 专题列表,数组结构,专题列表可以继续包含多个专题列表或多个专题
          "children": [
            {
              // 专题id
              "id": "7e1e283f-3dc8-d53d-cdd9-9633e4c612ca",
              // 专题名称
              "title": "人口",
              // 专题可见性
              "visible": true,
              // 节点类型,详见下方“支持的节点类型”(subject 表示这是一个专题)
              "nodeType": "subject",
              // 专题类型(SubSectionMap:分段专题图;BaseMapWithGraph:统计专题图;Label:聚合标注专题图;StatisticLabel:等级符号专题图;HeatMap:热力图;HexBin:蜂窝图)
              "type": "SubSectionMap",
              // 专题配置,数组类型,详见下面各专题配置规范
              "config": [
                {
                  // ☆下面为各专题图配置的公共配置部分
                  // 年度, string 类型
                  "time": "2013",
                  // ip(可选,如果不设,则使用baseConfig中的baseIp)
                  "ip": "develop.smaryun.com",
                  // port(可选,如果不设,则使用baseConfig中的basePort)
                  "port": "6163",
                  // 该层级的最小显示级数
                  "minZoom": 1,
                  // 该层级的最大显示级数
                  "maxZoom": 10,
                  // 矢量图层地址,该项和下面<docName、layerName、layerIndex>只能选择一种填写
                  "gdbp": "gdbp://MapGISLocal/专题图数据/sfcls/省级行政区x",
                  // 地图文档服务名,该项和上面<gdbp>只能选择一种填写
                  "docName": "",
                  // 文档地图图层名,该项和上面<gdbp>只能选择一种填写,且layerName、layerIndex二选一即可
                  "layerName": "",
                  // 文档地图图层层级,该项和上面<gdbp>只能选择一种填写,且layerName、layerIndex二选一即可
                  "layerIndex": "",
                  // 前端要素查询个数(查询记录过大会造成前端显示过慢)
                  "queryFeatureNum": "10000+",
                  // 分段字段
                  "field": "人口数",
                  // 表格数据设置
                  "table": {
                    // 显示字段
                    "showFields": [
                      "权属名称",
                      "权属代码",
                      "总人口万人",
                      "省名",
                      "分类索引",
                      "周长",
                      "面积",
                      "人口数"
                    ],
                    // 重设字段对应的别名,用来显示在图表上,如果没有设置,则采用字段本身默认的别名
                    "showFieldsTitle": {
                      "权属名称": "权属名称1"
                    }
                  },
                  // 统计图设置
                  "graph": {
                    // 分类字段
                    "field": "省名",
                    // 显示颜色
                    "fieldColors": [
                      "rgb(29, 137, 243)"
                    ],
                    // 统计字段
                    "showFields": ["人口数"],
                    // 重设字段对应的别名,用来显示在图表上,如果没有设置,则采用字段本身默认的别名
                    "showFieldsTitle": {
                      "人口数": "人口数1"
                    }
                  },
                  // 弹出框数据设置
                  "popup": {
                    // 弹框标题字段
                    "title": "省名",
                    // 属性字段列表
                    "showFields": ["面积", "周长", "省名", "人口数"],
                    // 重设字段对应的别名,用来显示在图表上,如果没有设置,则采用字段本身默认的别名
                    "showFieldsTitle": {}
                  },
                  // ☆专题图的样式配置各不相同(大多数是themeStyle,只有统计专题图是graphType),下面分开说明
                  "themeStyle": {
                    // ...单个专题图样式相关配置
                  }
                },
                // ...
              ]
            }
          ]
        }
      ]
    }
  ]
}

# 分段专题图(SubSectionMap)配置规范

// 这个文件描述分段专题图配置信息
{
  // ... // 其他同上方公共配置
  // 样式配置
  "themeStyle": {
    "isHoverAble": false, // 是否开启高亮
    "isPopUpAble": false, // 是否有开启弹窗
    "opacity": 100, // 图层透明度0-100
    "visible": true, // 专题图是否显示或隐藏
    "highlightStyle": {
      // 高亮样式
      "fillStyle": "fillStyle", // 填充区域样式
      "lineStyle": "lineStyle", // 外边线样式
    },
    "style": {
      // 专题图样式
      // 点样式---------
      "radius": "", // 半径,仅点、符号有用
      "outline": true, // 是否有外边线,仅点、多边形有用
      "outlineColor": "", // 外边线颜色
      "outlineWidth": "", // 外边线宽度
      "anchor": "", // 锚点,方向Top、...8个方向
      // 线样式-------
      "width": "", // 线宽度
      "dashArray": "", // 线样式,仅线有用
      "cap": "", // 线头样式
      "join": "", // 拐角样式
      "hasShadow": false, // 是否启用阴影
      "shadowBlur": "", // 阴影模糊度
      "shadowColor": "", // 阴影颜色
      "shadowOffsetX": "", // 阴影X轴偏移
      "shadowOffsetY": "", // 阴影Y周偏印
      // 标签样式----------
      "fontFamily": "", // 字体
      "fontColor": "", // 字体颜色
      "fontSize": "", // 字体大小
      "spacing": "", // 文字间距
      "rotate": "", // 文字旋转角度
      "xOffset": "", // 文字X轴偏移
      "yOffset": "", // 文字Y轴偏移
      "lineHeight": "", // 行高
      "maxWidth": "", // 行宽
      "align": "", // 对齐方式
      "halo": "", // 描边
      "placement": "", // 是否沿着边线显示,
      // 填充符号样式------
      "symbol": "", // 符号Url或者名称(本地自带图片)
      "rotate": "", // 旋转角度
      "size": "", // 符号大小
      "xOffset": "", // 符号X轴偏移
      "yOffset": "", // 符号Y轴偏移
      "anchor": "", // 锚点,方向Top,。。8个方向
      // 填充几何样式---------
      "hasOutline": true, // 是否有外边线,仅点、多边形有用
      "outlineColor": "", // 外边线颜色
      "outlineWidth": "", // 外边线宽度
      "outlineDashArray": "", // 线样式,仅线有用
      "hasShadow": false, // 是否启用阴影
      "shadowBlur": "", // 阴影模糊度
      "shadowColor": "", // 阴影颜色
      "shadowOffsetX": "", // 阴影X轴偏移
      "shadowOffsetY": "", // 阴影Y周偏印
      "symbol": "symbolStyle",
      "outlineSymbol": "symbolStyle",
    },
    "styleGroups": [ // 有对应UI
      // field字段所对应的专题图分段值样式设置,默认用style
      {
        "start": 0, // 起始值
        "end": 30, // 结束值
        "style": {
          // 分段样式
          "color": "#FF0000", // 设定填充颜色
        },
      },
    ],
  }
}

# 统计专题图(BaseMapWithGraph)配置规范

// 这个文件描述统计专题图配置信息
{
  // ... // 其他同上方公共配置
  // 统计图类型(pie:饼状图、bar:柱状图、...更多类型详见下方“统计专题图类型”)
  "graphType": "pie",
}

# 聚合标注专题图(Label)配置规范

// 这个文件描述聚合标注专题图配置信息
{
  // ... // 其他同上方公共配置
  // 样式配置
  "themeStyle": {
    // 非聚合点的半径 50 / 3 / 2
    "size": 50,
    // 聚合点最小半径
    "minSize": 8, // 有对应UI
    // 聚合点最大半径 
    "maxSize": 31, // 有对应UI
    // 透明度
    "globalAlpha": 0.8, // 有对应UI
    // 聚合像素半径
    "clusterRadius": 150, // 有对应UI
    // 最大聚合的级别
    "maxClusterZoom": 18,  // 有对应UI
    // 最大显示级别
    "maxZoom": 19, 
    // 最少聚合点数,点数多于此值才会被聚合
    "minPoints": 5, // 有对应UI
    // 聚合的细腻程度,越高聚合后点越密集 
    "extent": 400, // 有对应UI
    "label": { // 聚合文本样式
      // 是否显示
      "show": true, 
      "fillStyle": "white",
    },
    // 聚合图标渐变色
    "gradient": { // 有对应UI
      "0": "blue",
      "0.5": "yellow",
      "1.0": "rgb(255,0,0)",
    },
  }
}

# 等级符号专题图(StatisticLabel)配置规范

// 这个文件描述等级符号专题图配置信息
{
  // ... // 其他同上方公共配置
  // 样式配置
  "themeStyle": {
    "isHoverAble": false, // 是否开启高亮
    "isPopUpAble": false, // 是否有开启弹窗
    "opacity": 100, // 图层透明度0-100
    "visible": true, // 专题图是否显示或隐藏
    "highlightStyle": {
      // 高亮样式
      "fillStyle": "fillStyle", // 填充区域样式
      "lineStyle": "lineStyle", // 外边线样式
    },
    "style": {
      // 专题图样式
      "idShowFont": false, // 是否启用文字标签
      "fontFamily": "", // 字体
      "fontColor": "", // 字体颜色
      "fontSize": "", // 字体大小
      "fontSpacing": "", // 文字间距
      "fontXOffset": "", // 文字X轴偏移
      "fontYOffset": "", // 文字Y轴偏移
      "isShowSymbol": false, // 是否启用图标或填充图案
      "symbol": "", // 符号Url或者名称
      "symbolColor": "", // 图标颜色
      "symbolRotate": "", // 旋转角度
      "symbolSize": "", // 符号大小
      "symbolXOffset": "", // 符号X轴偏移
      "symbolYOffset": "", // 符号Y轴偏移
    },
    "styleGroups": [ // 有对应UI
      // field字段所对应专题图样式,默认用style
      {
        "start": 0, // 起始值
        "end": 30, // 结束值
        "style": {
          // 分段样式,注意不可更改符号
          "radius": 10, // 设定符号大小
          "color": "FF9933" // 兼容三维,目前三维还是以绘制实心圆的方式,表示符号,需要设置color
        },
      },
    ],
  }
}

# 热力图(HeatMap)配置规范

// 这个文件描述热力图配置信息
{
  // ... // 其他同上方公共配置
  // 样式配置
  "themeStyle": {
    // 热力图类型:MAPV | CESIUM,默认CESIUM
    "type": "CESIUM", // 有对应UI
    // 最小透明度
    "minOpacity": 0,
    // 最大透明度
    "maxOpacity": 1,
    // 颜色渐变
    "gradient": { // 有对应UI
      "0.25": "rgb(0,0,255)",
      "0.55": "rgb(0,255,0)",
      "0.85": "rgb(241,241,15)",
      "1.0": "rgb(255,0,0)",
    },

    // ---- type 为 CESIUM 时的配置----
    // 边界周围的额外空间
    "spacing": 1,
    // 透明度
    "alpha": 1,
    // 模糊值 
    "blur": 0.85, // 有对应UI
    // 每个热力点半径大小
    "radius": 20, // 有对应UI
    // 是否聚合
    "useClustering": true, // 有对应UI

    // ---- type 为 MAPV 时的配置----
    // 最大权重值
    "max": 100, // 有对应UI
    // 每个热力点半径大小
    "size": 20, // 有对应UI
  }
}

# 蜂窝图(HexBin)配置规范

// 这个文件描述蜂窝图配置信息
{
  // ... // 其他同上方公共配置
  // 样式配置
  "themeStyle": {
    // 最小透明度
    "minOpacity": 0,
    // 最大透明度
    "maxOpacity": 1,
    // 每个蜂窝半径大小
    "size": 30, // 有对应UI
    // 最大权重值
    "max": 100, // 有对应UI
    // 透明度
    "globalAlpha": 0.5, // 有对应UI
    // 标签样式
    "label": {
      "show": true,
      "fillStyle": "white",
      "shadowColor": "yellow",
      "font": "15px Arial",
      "shadowBlur": 10
    },
    // 颜色渐变
    "gradient": { // 有对应UI
      "0.25": "rgb(0,0,255)",
      "0.55": "rgb(0,255,0)",
      "0.85": "rgb(241,241,15)",
      "1.0": "rgb(255,0,0)",
    },
  }
}

# 支持的节点类型

subjectConfig描述的是专题配置,它由专题分类列表构成,每个专题分类下又可以划分为多个专题列表或直接包含多个专题,专题列表又可以划分专题列表或直接包含多个专题,这样,整个专题服务配置形成了一颗专题服务配置树。

类型 类型描述
panel 专题分类,专题配置树展开后第一级
list 分类下的专题列表
subject 专题

# 专题类型

类型 类型描述
SubSectionMap 分段专题图,前端分段专题图,支持点、线、区等类型
BaseMapWithGraph 统计专题图,前端统计专题图
Label 聚合标注专题图,基于地图文档或者图层的聚合标注
StatisticLabel 等级符号专题图,以某一属性字段值作为标注的内容,不进行二次统计,展现方式类似于标注专题图
HeatMap 热力图
HexBin 蜂窝图

# 统计专题图类型

类型 类型描述
point 散点图
pie 饼图
bar 柱状图
bar3d 3D 柱状图
line 折线图
ring 环状图