Skip to content

Commit a1d784e

Browse files
author
caoxinke
committed
common 下注释修改统一;新增leaflet、legacy注释。 review by caoxinke.
2 parents 5a1b67e + 8b22d9f commit a1d784e

File tree

8 files changed

+148
-17
lines changed

8 files changed

+148
-17
lines changed

dist/iclient9-leaflet.js

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18744,12 +18744,13 @@ var TileVectorLayer = exports.TileVectorLayer = _VectorGrid.VectorGrid.extend({
1874418744

1874518745
var style = me.vectorTileLayerStyles[layerName];
1874618746
if (style) {
18747+
feature = this._mergeFeatureTextField(feature, style);
1874718748
return style;
1874818749
}
1874918750

1875018751
// SuperMap.CartoCSSToLeaflet内部做了客户端配置的cartoCSS和服务端cartoCSS的拼接处理
1875118752
// 客户端配置的cartoCSS会覆盖相应图层的服务端cartoCSS
18752-
if (!style && feature.type !== "TEXT") {
18753+
if (!style) {
1875318754
var scale = this.getScaleFromCoords(coords);
1875418755
var shaders = _CartoCSSToLeaflet.CartoCSSToLeaflet.pickShader(layerName) || [];
1875518756
style = [];
@@ -18764,9 +18765,14 @@ var TileVectorLayer = exports.TileVectorLayer = _VectorGrid.VectorGrid.extend({
1876418765
}
1876518766
}
1876618767

18768+
feature = this._mergeFeatureTextField(feature, style);
18769+
1876718770
//次优先级是layers资源的默认的样式,最低优先级是CartoDefaultStyle的样式
18768-
if (!style || style.length < 1) {
18771+
if (feature.type === "TEXT" || !style || style.length < 1) {
1876918772
style = _CartoCSSToLeaflet.CartoCSSToLeaflet.getValidStyleFromLayerInfo(feature, layerStyleInfo);
18773+
if (feature.type === "TEXT") {
18774+
style.textName = "[" + feature.properties.textField + "]";
18775+
}
1877018776
}
1877118777

1877218778
me.vectorTileLayerStyles[layerName] = style;
@@ -18828,6 +18834,26 @@ var TileVectorLayer = exports.TileVectorLayer = _VectorGrid.VectorGrid.extend({
1882818834
return _leaflet2.default.Util.resolutionToScale(resolution, 96, mapUnit);
1882918835
},
1883018836

18837+
_mergeFeatureTextField: function _mergeFeatureTextField(feature, style) {
18838+
//如果设置了使用服务端cartocss样式,则文本专题图图层优先从carto中读取文本字段的key
18839+
if (!this.options.serverCartoCSSStyle || !style || feature.type !== "TEXT") {
18840+
return feature;
18841+
}
18842+
18843+
var tempStyle = style;
18844+
if (!_leaflet2.default.Util.isArray(style)) {
18845+
tempStyle = [style];
18846+
}
18847+
for (var i = 0; i < tempStyle.length; i++) {
18848+
var textName = tempStyle[i].textName;
18849+
if (textName && feature.properties) {
18850+
feature.properties.textField = textName.substring(1, textName.length - 1);
18851+
}
18852+
}
18853+
18854+
return feature;
18855+
},
18856+
1883118857
_getTileUrl: function _getTileUrl(coords) {
1883218858
var me = this,
1883318859
tileTemplate = me.options.tileTemplate;
@@ -57428,6 +57454,7 @@ var CartoStyleMap = exports.CartoStyleMap = _leaflet2.default.supermap.CartoStyl
5742857454
"text-size": "fontSize",
5742957455
"text-face-name": "fontFamily",
5743057456
"text-align": "textAlign",
57457+
"text-name": "textName",
5743157458
'text-weight': 'fontWeight',
5743257459
"text-halo-color": "color",
5743357460
"text-fill": "fillColor",

dist/iclient9-leaflet.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/iclient9-openlayers.js

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10708,7 +10708,8 @@ var StyleUtils = function () {
1070810708
style = this.getDefaultStyle(type);
1070910709
attributes.FEATUREID = feature.getProperties().id;
1071010710
attributes.SCALE = scale;
10711-
var cartoStyleMap = _StyleMap.StyleMap.CartoStyleMap[type];
10711+
var cartoStyleType = feature.getProperties().type === "TEXT" ? "TEXT" : type;
10712+
var cartoStyleMap = _StyleMap.StyleMap.CartoStyleMap[cartoStyleType];
1071210713
var fontSize, fontName;
1071310714
if (shader) {
1071410715
for (var i = 0, len = shader.length; i < len; i++) {
@@ -10741,7 +10742,20 @@ var StyleUtils = function () {
1074110742
}
1074210743
}
1074310744
if (feature.getProperties().type === 'TEXT') {
10744-
return this.toOLTextStyle(style, feature.getProperties().texts[0]);
10745+
var text;
10746+
if (feature.getProperties().texts) {
10747+
text = feature.getProperties().texts[0];
10748+
}
10749+
if (text == null && style.textName) {
10750+
var textName = style.textName.substring(1, style.textName.length - 1);
10751+
text = feature.getProperties().attributes ? feature.getProperties().attributes[textName] : feature.getProperties()[textName];
10752+
if (text != null) {
10753+
var texts = feature.getProperties().texts || [];
10754+
texts.push(text);
10755+
feature.setProperties({ texts: texts });
10756+
}
10757+
}
10758+
return this.toOLTextStyle(style, text);
1074510759
}
1074610760
if (type === 'POINT' || type === 'MULTIPOINT') {
1074710761
return this.toOLPointStyle(style);
@@ -52887,7 +52901,11 @@ var VectorTileStyles = function (_ol$Observable) {
5288752901
if (!_olDebug2.default.supermap.VectorTileStyles.getDonotNeedServerCartoCss() && _olDebug2.default.supermap.VectorTileStyles.getCartoShaders()[layerName]) {
5288852902
//如果是文本,这里特殊处理。
5288952903
if (feature.getProperties().textStyle || feature.getProperties().TEXT_FEATURE_CONTENT || layerInfo.type == 'LABEL' && layerInfo.textField) {
52890-
return _StyleUtils2.default.getValidStyleFromLayerInfo(layerInfo, feature, url);
52904+
var featureStyle = _StyleUtils2.default.getValidStyleFromLayerInfo(layerInfo, feature, url);
52905+
if (feature.getGeometry().getType().toUpperCase() === "POINT") {
52906+
featureStyle = mergeTextFeatureStyle(layerInfo, feature, url);
52907+
}
52908+
return featureStyle;
5289152909
}
5289252910
return getStyleArray(_olDebug2.default.supermap.VectorTileStyles.getCartoShaders()[layerName]);
5289352911
}
@@ -52904,6 +52922,25 @@ var VectorTileStyles = function (_ol$Observable) {
5290452922
}
5290552923
return styleArray;
5290652924
}
52925+
52926+
function mergeTextFeatureStyle(layerInfo, feature, url) {
52927+
var textFeatureStyle = _StyleUtils2.default.getValidStyleFromLayerInfo(layerInfo, feature, url);
52928+
if (layerInfo.type == 'LABEL') {
52929+
feature.setProperties({ type: "TEXT" });
52930+
var cartoTextStyles = getStyleArray(_olDebug2.default.supermap.VectorTileStyles.getCartoShaders()[layerName]);
52931+
var textStyle = textFeatureStyle.getText();
52932+
for (var i = 0; i < cartoTextStyles.length; i++) {
52933+
if (!textStyle) {
52934+
textStyle = cartoTextStyles[i].getText();
52935+
} else {
52936+
textStyle.setText(cartoTextStyles[i].getText().getText());
52937+
}
52938+
}
52939+
textFeatureStyle.setText(textStyle);
52940+
return textFeatureStyle;
52941+
}
52942+
return textFeatureStyle;
52943+
}
5290752944
}
5290852945
}]);
5290952946

dist/iclient9-openlayers.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/leaflet/overlay/TileVectorLayer.js

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,12 +222,13 @@ export var TileVectorLayer = VectorGrid.extend({
222222

223223
var style = me.vectorTileLayerStyles[layerName];
224224
if (style) {
225+
feature = this._mergeFeatureTextField(feature, style);
225226
return style;
226227
}
227228

228229
// SuperMap.CartoCSSToLeaflet内部做了客户端配置的cartoCSS和服务端cartoCSS的拼接处理
229230
// 客户端配置的cartoCSS会覆盖相应图层的服务端cartoCSS
230-
if (!style && feature.type !== "TEXT") {
231+
if (!style) {
231232
var scale = this.getScaleFromCoords(coords);
232233
var shaders = CartoCSSToLeaflet.pickShader(layerName) || [];
233234
style = [];
@@ -242,9 +243,14 @@ export var TileVectorLayer = VectorGrid.extend({
242243
}
243244
}
244245

246+
feature = this._mergeFeatureTextField(feature, style);
247+
245248
//次优先级是layers资源的默认的样式,最低优先级是CartoDefaultStyle的样式
246-
if (!style || style.length < 1) {
249+
if (feature.type === "TEXT" || (!style || style.length < 1)) {
247250
style = CartoCSSToLeaflet.getValidStyleFromLayerInfo(feature, layerStyleInfo);
251+
if (feature.type === "TEXT") {
252+
style.textName = "[" + feature.properties.textField + "]";
253+
}
248254
}
249255

250256
me.vectorTileLayerStyles[layerName] = style;
@@ -307,6 +313,26 @@ export var TileVectorLayer = VectorGrid.extend({
307313
return L.Util.resolutionToScale(resolution, 96, mapUnit);
308314
},
309315

316+
_mergeFeatureTextField: function (feature, style) {
317+
//如果设置了使用服务端cartocss样式,则文本专题图图层优先从carto中读取文本字段的key
318+
if (!this.options.serverCartoCSSStyle || !style || feature.type !== "TEXT") {
319+
return feature;
320+
}
321+
322+
var tempStyle = style;
323+
if (!L.Util.isArray(style)) {
324+
tempStyle = [style];
325+
}
326+
for (var i = 0; i < tempStyle.length; i++) {
327+
var textName = tempStyle[i].textName;
328+
if (textName && feature.properties) {
329+
feature.properties.textField = textName.substring(1, textName.length - 1);
330+
}
331+
}
332+
333+
return feature;
334+
},
335+
310336
_getTileUrl: function (coords) {
311337
var me = this, tileTemplate = me.options.tileTemplate;
312338
if (!tileTemplate) {

src/leaflet/overlay/carto/CartoStyleMap.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export var CartoStyleMap = L.supermap.CartoStyleMap = {
1515
"text-size": "fontSize",
1616
"text-face-name": "fontFamily",
1717
"text-align": "textAlign",
18+
"text-name":"textName",
1819
'text-weight': 'fontWeight',
1920
"text-halo-color": "color",
2021
"text-fill": "fillColor",

src/openlayers/core/StyleUtils.js

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import ol from 'openlayers/dist/ol-debug';
22
import SuperMap from '../../common/SuperMap';
33
import {StyleMap} from '../overlay/vectortile/StyleMap';
44
import {DeafultCanvasStyle} from '../overlay/vectortile/DeafultCanvasStyle';
5+
56
ol.supermap = ol.supermap || {};
67

78
export default class StyleUtils {
@@ -211,7 +212,8 @@ export default class StyleUtils {
211212
style = this.getDefaultStyle(type);
212213
attributes.FEATUREID = feature.getProperties().id;
213214
attributes.SCALE = scale;
214-
var cartoStyleMap = StyleMap.CartoStyleMap[type];
215+
var cartoStyleType = feature.getProperties().type === "TEXT" ? "TEXT" : type;
216+
var cartoStyleMap = StyleMap.CartoStyleMap[cartoStyleType];
215217
var fontSize, fontName;
216218
if (shader) {
217219
for (var i = 0, len = shader.length; i < len; i++) {
@@ -231,7 +233,7 @@ export default class StyleUtils {
231233
} else {
232234
if (prop === "globalCompositeOperation") {
233235
value = StyleMap.CartoCompOpMap[value];
234-
if (!value || value === "")continue;
236+
if (!value || value === "") continue;
235237
} else if (fromServer && prop === 'pointFile') {
236238
value = url + '/tileFeature/symbols/' + value.replace(/(___)/gi, '@');
237239
}
@@ -244,7 +246,20 @@ export default class StyleUtils {
244246
}
245247
}
246248
if (feature.getProperties().type === 'TEXT') {
247-
return this.toOLTextStyle(style, feature.getProperties().texts[0])
249+
var text;
250+
if (feature.getProperties().texts) {
251+
text = feature.getProperties().texts[0];
252+
}
253+
if (text == null && style.textName) {
254+
var textName = style.textName.substring(1, style.textName.length - 1);
255+
text = feature.getProperties().attributes ? feature.getProperties().attributes[textName] : feature.getProperties()[textName];
256+
if (text != null) {
257+
var texts = feature.getProperties().texts || [];
258+
texts.push(text);
259+
feature.setProperties({texts: texts});
260+
}
261+
}
262+
return this.toOLTextStyle(style, text)
248263
}
249264
if (type === 'POINT' || type === 'MULTIPOINT') {
250265
return this.toOLPointStyle(style);
@@ -332,7 +347,7 @@ export default class StyleUtils {
332347
}
333348

334349
static dashStyle(style, widthFactor) {
335-
if (!style)return [];
350+
if (!style) return [];
336351
var w = style.strokeWidth * widthFactor;
337352
var str = style.strokeDashstyle;
338353
switch (str) {
@@ -349,8 +364,8 @@ export default class StyleUtils {
349364
case 'longdashdot':
350365
return [8 * w, 4 * w, 1, 4 * w];
351366
default:
352-
if (!str)return [];
353-
if (SuperMap.Util.isArray(str))return str;
367+
if (!str) return [];
368+
if (SuperMap.Util.isArray(str)) return str;
354369
str = SuperMap.String.trim(str).replace(/\s+/g, ",");
355370
return str.replace(/\[|\]/gi, "").split(",");
356371
}

src/openlayers/overlay/vectortile/VectorTileStyles.js

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import ol from 'openlayers/dist/ol-debug';
22
import '../../../common/style/CartoCSS';
33
import SuperMap from '../../../common/SuperMap';
44
import StyleUtils from '../../core/StyleUtils';
5+
56
ol.supermap = ol.supermap || {};
67

78
export default class VectorTileStyles extends ol.Observable {
@@ -266,7 +267,7 @@ export default class VectorTileStyles extends ol.Observable {
266267
return null;
267268
}
268269
var layerInfo = layersInfo[layerName];
269-
if (!layerInfo)return null;
270+
if (!layerInfo) return null;
270271
var layerInfo_simple = {layerIndex: layerInfo.layerIndex, ugcLayerType: layerInfo.ugcLayerType};
271272
switch (layerInfo.ugcLayerType) {
272273
case "VECTOR":
@@ -306,7 +307,11 @@ export default class VectorTileStyles extends ol.Observable {
306307
if (!ol.supermap.VectorTileStyles.getDonotNeedServerCartoCss() && ol.supermap.VectorTileStyles.getCartoShaders()[layerName]) {
307308
//如果是文本,这里特殊处理。
308309
if (feature.getProperties().textStyle || feature.getProperties().TEXT_FEATURE_CONTENT || layerInfo.type == 'LABEL' && layerInfo.textField) {
309-
return StyleUtils.getValidStyleFromLayerInfo(layerInfo, feature, url);
310+
var featureStyle = StyleUtils.getValidStyleFromLayerInfo(layerInfo, feature, url);
311+
if (feature.getGeometry().getType().toUpperCase() === "POINT") {
312+
featureStyle = mergeTextFeatureStyle(layerInfo, feature, url);
313+
}
314+
return featureStyle;
310315
}
311316
return getStyleArray(ol.supermap.VectorTileStyles.getCartoShaders()[layerName]);
312317
}
@@ -323,6 +328,26 @@ export default class VectorTileStyles extends ol.Observable {
323328
}
324329
return styleArray;
325330
}
331+
332+
function mergeTextFeatureStyle(layerInfo, feature, url) {
333+
var textFeatureStyle = StyleUtils.getValidStyleFromLayerInfo(layerInfo, feature, url);
334+
if (layerInfo.type == 'LABEL') {
335+
feature.setProperties({type: "TEXT"});
336+
var cartoTextStyles = getStyleArray(ol.supermap.VectorTileStyles.getCartoShaders()[layerName]);
337+
var textStyle = textFeatureStyle.getText();
338+
for (var i = 0; i < cartoTextStyles.length; i++) {
339+
if (!textStyle) {
340+
textStyle = cartoTextStyles[i].getText();
341+
} else {
342+
textStyle.setText(cartoTextStyles[i].getText().getText());
343+
}
344+
}
345+
textFeatureStyle.setText(textStyle);
346+
return textFeatureStyle;
347+
}
348+
return textFeatureStyle;
349+
}
350+
326351
};
327352

328353
getFeatureStyle(feature) {

0 commit comments

Comments
 (0)