@@ -8062,9 +8062,9 @@ var SuperMap = __webpack_require__(0);
80628062ol.supermap.StyleUtils = {
80638063 getValidStyleFromLayerInfo: function (layerInfo, feature, url) {
80648064 var type = feature.getGeometry().getType().toUpperCase(),
8065- style = this.getDefaultStyle(type) ,
8066- shader = layerInfo.layerStyle ;
8067- if ((type === "POINT" || type === 'MULTIPOINT') && !feature.getProperties().textStyle && layerInfo.type !== 'LABEL') {
8065+ shader = layerInfo.layerStyle ,
8066+ style = this.getDefaultStyle(type) ;
8067+ if ((type === "POINT" || type === 'MULTIPOINT') && !feature.getProperties().textStyle && layerInfo.type !== 'LABEL' && !feature.getProperties().TEXT_FEATURE_CONTENT ) {
80688068 if (shader) {
80698069 var symbolParameters = {
80708070 "transparent": true,
@@ -8082,11 +8082,15 @@ ol.supermap.StyleUtils = {
80828082 });
80838083 }
80848084 return this.toOLPointStyle(style);
8085- } else if ((type === "POINT" || type === 'MULTIPOINT') && (feature.getProperties().textStyle || layerInfo.type === 'LABEL')) {
8085+ } else if ((type === "POINT" || type === 'MULTIPOINT') && (feature.getProperties().textStyle || layerInfo.type === 'LABEL' || feature.getProperties().TEXT_STYLE_INFO)) {
8086+ style = this.getDefaultStyle('TEXT');
80868087 if (feature.getProperties().textStyle) {
80878088 shader = feature.getProperties().textStyle;
80888089 }
8089- if (shader) {
8090+ if (feature.getProperties().TEXT_STYLE_INFO) {
8091+ shader = feature.getProperties().TEXT_STYLE_INFO;
8092+ }
8093+ if (shader && shader !== "{}") {
80908094 var fontStr = "";
80918095 //设置文本是否倾斜
80928096 style.fontStyle = !!shader.italic ? "italic" : "normal";
@@ -8140,11 +8144,14 @@ ol.supermap.StyleUtils = {
81408144 if (feature.getProperties().textStyle && feature.getProperties().texts) {
81418145 text = feature.getProperties().texts[0];
81428146 }
8143- if (layerInfo.type === 'LABEL' && feature.getProperties().attributes !== null ) {
8147+ if (layerInfo.type === 'LABEL') {
81448148 text = feature.getProperties().attributes ? feature.getProperties().attributes[layerInfo.textField] : feature.getProperties()[layerInfo.textField];
81458149 }
8150+ if (feature.getProperties().TEXT_FEATURE_CONTENT) {
8151+ text = feature.getProperties().TEXT_FEATURE_CONTENT;
8152+ }
81468153 if (!text) {
8147- return this.toOLPointStyle(style );
8154+ return this.toOLPointStyle(this.getDefaultStyle('POINT') );
81488155 }
81498156 return this.toOLTextStyle(style, text);
81508157 } else if (shader) {
@@ -8358,7 +8365,7 @@ ol.supermap.StyleUtils = {
83588365 toOLTextStyle: function (style, text) {
83598366 return new ol.style.Style({
83608367 text: new ol.style.Text({
8361- font: style.fontStyle || '' + ' ' + style.fontWeight || '' + ' ' + style.fontSize || '' + ' ' + style.fontFamily,
8368+ font: ( style.fontStyle || '') + ' ' + ( style.fontWeight || '') + ' ' + ( style.fontSize || '') + ' ' + style.fontFamily,
83628369 text: text,
83638370 textAlign: style.textAlign,
83648371 textBaseline: style.textBaseline,
@@ -34721,7 +34728,7 @@ ol.supermap.VectorTileStyles.getStyle = function (originalLayerName, feature) {
3472134728 var layerInfo = ol.supermap.VectorTileStyles.getLayerInfo(originalLayerName);
3472234729 if (!ol.supermap.VectorTileStyles.getDonotNeedServerCartoCss() && ol.supermap.VectorTileStyles.getCartoShaders()[layerName]) {
3472334730 //如果是文本,这里特殊处理。
34724- if (feature.getProperties().textStyle || layerInfo.type == 'LABEL' && layerInfo.textField) {
34731+ if (feature.getProperties().textStyle || feature.getProperties().TEXT_FEATURE_CONTENT || layerInfo.type == 'LABEL' && layerInfo.textField) {
3472534732 return StyleUtils.getValidStyleFromLayerInfo(layerInfo, feature, url);
3472634733 }
3472734734 return getStyleArray(ol.supermap.VectorTileStyles.getCartoShaders()[layerName]);
0 commit comments