MCPcopy Create free account
hub / github.com/SuperMap/iClient-JavaScript / addLabelLayer

Method addLabelLayer

src/openlayers/mapping/WebMap.js:3285–3316  ·  view source on GitHub ↗

* @private * @function WebMap.prototype.addLabelLayer * @description 添加标签图层 * @param {Object} layerInfo - 图层信息 * @param {Array} features -feature的集合 * @returns {ol.layer.Vector} 图层对象

(layerInfo, features)

Source from the content-addressed store, hash-verified

3283 * @returns {ol.layer.Vector} 图层对象
3284 */
3285 addLabelLayer(layerInfo, features) {
3286 let labelStyle = layerInfo.labelStyle;
3287 let style = this.getLabelStyle(labelStyle, layerInfo);
3288 let layer = (layerInfo.labelLayer = new olLayer.Vector({
3289 declutter: true,
3290 styleOL: style,
3291 labelField: labelStyle.labelField,
3292 source: new Vector({
3293 features: features,
3294 wrapX: false
3295 })
3296 }));
3297 layer.setStyle((features) => {
3298 let labelField = labelStyle.labelField;
3299 let label = features.get('attributes')[labelField.trim()] + '';
3300 if (label === 'undefined') {
3301 return null;
3302 }
3303 let styleOL = layer.get('styleOL');
3304 let text = styleOL.getText();
3305 if (text && text.setText) {
3306 text.setText(label);
3307 }
3308 return styleOL;
3309 });
3310 this.map.addLayer(layer);
3311 layer.setVisible(layerInfo.visible);
3312 layer.setZIndex(1000);
3313 const { visibleScale } = layerInfo;
3314 visibleScale && this.setVisibleScales(layer, visibleScale);
3315 return layer;
3316 }
3317
3318 /**
3319 * @private

Callers 2

addLayerMethod · 0.95
createDataflowLayerMethod · 0.95

Calls 7

getLabelStyleMethod · 0.95
setVisibleScalesMethod · 0.95
trimMethod · 0.80
setStyleMethod · 0.45
getMethod · 0.45
addLayerMethod · 0.45
setZIndexMethod · 0.45

Tested by

no test coverage detected