* @private * @function WebMap.prototype.createVectorLayer * @description 创建vector图层 * @param {Object} layerInfo - 图层信息 * @param {Array} features -feature的集合 * @returns {ol.layer.Vector} 矢量图层
(layerInfo, features)
| 3392 | * @returns {ol.layer.Vector} 矢量图层 |
| 3393 | */ |
| 3394 | async createVectorLayer(layerInfo, features) { |
| 3395 | const { featureType, style } = layerInfo; |
| 3396 | let newStyle; |
| 3397 | if (featureType === 'LINE' && Util.isArray(style) && style.length === 2) { |
| 3398 | const [outlineStyle, strokeStyle] = style; |
| 3399 | newStyle = |
| 3400 | !strokeStyle.lineDash || strokeStyle.lineDash === 'solid' |
| 3401 | ? StyleUtils.getRoadPath(strokeStyle, outlineStyle) |
| 3402 | : StyleUtils.getPathway(strokeStyle, outlineStyle); |
| 3403 | } else { |
| 3404 | if (Util.isArray(style)) { |
| 3405 | layerInfo.style = style[0]; |
| 3406 | } |
| 3407 | newStyle = await StyleUtils.toOpenLayersStyle(layerInfo.style, layerInfo.featureType); |
| 3408 | } |
| 3409 | return new olLayer.Vector({ |
| 3410 | style: newStyle, |
| 3411 | source: new Vector({ |
| 3412 | features: layerInfo.filterCondition ? this.getFiterFeatures(layerInfo.filterCondition, features) : features, |
| 3413 | wrapX: false |
| 3414 | }) |
| 3415 | }); |
| 3416 | } |
| 3417 | |
| 3418 | /** |
| 3419 | * @private |
no test coverage detected