数据上图 WebApp 扩展流程 |
数据上图WebApp支持扩展定制 Logo 跳转链接、左侧的 Tabs 标签页,以及矢量图层样式中使用的点线符号集。本节将介绍数据上图WebApp的扩展流程。
在路径【iPortal 产品包】 /webapps/iportal/WEB-INF/lib/ 找到并解压 webjar-dataviz-*.jar,在解压目录/META-INF/resources/apps/dataviz/libs/plugins下,可获取数据上图WebApp扩展定制有关的配置文件PluginsConfig.js、symbol-point.json和symbol-line.json。
let plugins = new DataViz.Plugins.DatavizPlugins({
changeTabCallback: changeMenuTab
});
window.DataViz.Plugins = {
// 默认点击左上角logo,打开iPortal首页
logoHref: "",
// 默认点击左上角logo,打开新的浏览器标签
logoHrefTargetSelf: false,
//左侧需要显示的 Tabs 标签页
menus: [{
//图层 Tab 项(默认界面已提供)
id: 'dv-layers',
title: DataViz.Language.layerManagement,
iconClass: 'supermapol-icons-layers'
},{
//设置 Tab 项(默认界面已提供)
id: 'dv-settings',
title: DataViz.Language.mapSetting,
iconClass: 'supermapol-icons-setting'
}
,{
//示范扩展项
id: 'dv-extension',
title: '扩展',
iconClass: 'supermapol-icons-roadnetwork'
}
]
,
//扩展js文件(相对路径)
jsFile: ['sample/Sample.js'],
//扩展css文件(注:相对路径)
cssFile: ['sample/Sample.css']
}
上述配置中,menus、jsFile、cssFile 详细说明如下:
参数 | 类型 | 描述 |
menus | array | 左侧面板展示的 Tabs 标签页数组,系统将根据元素的先后顺序依次从上往下进行显示。
数组元素为 object 类型。其中: id:Tab 页对应面板 dom 的id title:Tab 页的标题文字 iconClass:Tab 页图标的类名 |
jsFile | array | 扩展 Tab 页的 js 文件路径(相对PluginsConfig.js 配置文件)。 |
cssFile | array | 扩展 Tab 页的 css 文件路径(相对PluginsConfig.js 配置文件)。 |
注意:
window.DataViz.Plugins = {
// 默认点击左上角logo,打开iPortal首页
logoHref: "",
// 默认点击左上角logo,打开新的浏览器标签
logoHrefTargetSelf: false,
//左侧需要显示的 Tabs 标签页
menus: [{
id: 'dv-layers',
title: DataViz.Language.layerManagement,
iconClass: 'supermapol-icons-layers'
},{
id: 'dv-settings',
title: DataViz.Language.mapSetting,
iconClass: 'supermapol-icons-setting'
}
]
}
上述配置中,logoHref、logoHrefTargetSelf详细说明如下:
参数 | 类型 | 描述 |
logoHref | String | 数据上图 Logo 所对应的链接地址,为空则为 iPortal 首页。 |
logoHrefTargetSelf | boolean | 点击 Logo 后,是否在当前浏览器窗口打开链接地址。 |
{
"Vector": {
},
"Image": {
}
}
支持扩展定制矢量(Vector)与图片(Image)两种类型的点符号。矢量点符号支持可在线访问或相对地址(如static/imgs/layer_editor/point_imgs_v1/xxx.svg)的svg格式。图片点符号支持可在线访问或相对地址(如static/imgs/layer_editor/point_imgs_v1/xxx.png)的png/jpg/jpeg格式。
{
"Vector": {
//矢量点符号扩展示范
"自定义矢量1": [
"http://fakeurl:8081/demo/test1.svg",
"http://fakeurl:8081/demo/test2.svg",
]
},
"Image": {
//图片点符号扩展示范
"自定义图片1": [
"http://fakeurl:8081/demo/bigimgs/biji.png",
"http://fakeurl:8081/demo/bigimgs/biaoqian.png",
]
}
}
{
"traffic": {
"label": "交通", // 线符号集在标签页中的显示名称
"items": [] // 标签页下的自定义线符号
}
{
"traffic": {
"label": "交通", // 线符号集在标签页中的显示名称
"items": [ // 标签页下的自定义线符号
{
"id": "ordinaryRail", // 线符号的唯一 id
"label": "普通铁路", // 线符号的标题
"thumbnail": "static/imgs/layer_editor/lineType/dark/普通铁路.svg", // 线符号的缩略图地址,可为相对 static目录或在线地址
// styleConfigs 用于配置渲染界面或其他配置,数据格式为对象数组,与 styles 一一对应
"styleConfigs": [
{
"strokeColor": {
"label": "间隔线颜色1", // 配置项的显示名称
"controlType": "color" // 配置项的控件类型
},
"strokeWidth": {
"label": "间隔线宽度1",
"controlType": "number"
},
"strokeOpacity": {
"label": "间隔线不透明度1",
"controlType": "percent"
},
"lineCap": {
"label": "间隔线线端点样式1",
"controlType": "select"
}
},
{
"strokeColor": {
"label": "间隔线颜色2",
"controlType": "color"
},
"strokeWidth": {
"label": "间隔线宽度2",
"controlType": "number"
},
"strokeOpacity": {
"label": "间隔线不透明度2",
"controlType": "percent"
}
}
],
// styles 暂时只支持对 strokeColor strokeWidth strokeOpacity lineCap lineJoin 属性进行配置
"styles": [
{
"strokeColor": "#BFBFBF", // 线颜色配置
"strokeWidth": 4.16, // 线宽度配置 单位为像素
"strokeOpacity": 1, // 线透明度配置
"lineCap": "round" // 线端头样式配置,可选值为 round,butt,square
},
{
"strokeColor": "#ffffff",
"strokeWidth": 3,
"lineDash": [13.23, 13.23], // 虚实线配置 单位为像素
"strokeOpacity": 1,
"lineJoin": "round" //连接线配置,可选值为 round, butt, or square
}
]
}
]
}
}
完成扩展定制后,参照您进行的扩展定制项目,按需将扩展代码(js、css 文件)及修改后的配置文件(PluginsConfig.js、symbol-point.json、symbol-line.json)拷贝到【iPortal 产品包 】/webapps/iportal/apps/dataviz/libs/plugins/ 下(若没有需要新建),或重新压缩到 【iPortal 产品包】/webapps/iportal/WEB-INF/lib/webjar-dataviz-*.jar 中(位置:/META-INF/resources/apps/dataviz/libs/plugin/)。若两个位置均放置了扩展文件,系统将以前者为准。
不同扩展定制项目涉及到的文件:
扩展Tab标签页:扩展代码(js、css 文件)、配置文件PluginsConfig.js
定制数据上图Logo跳转链接:配置文件PluginsConfig.js
定制点线符号集:配置文件symbol-point.json或symbol-line.json。
将扩展文件放置完毕后,在浏览器中访问 iPortal,进入数据上图 WebApp,查看扩展效果(无需重启 iPortal,若未看到扩展效果,请删除浏览器缓存再访问)。其中,点线符号集的扩展效果可分别在点图层和线图层的图层面板中的“基本”选项卡下的“点样式”和“线样式”中查看。