Skip to content

Commit 0e8e988

Browse files
committed
【feature】代码优化
1 parent 1f2d5b0 commit 0e8e988

File tree

2 files changed

+28
-34
lines changed

2 files changed

+28
-34
lines changed

src/common/mapping/WebMapBase.js

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,6 @@ export function createWebMapBaseExtending(SuperClass = Events, fireField = 'trig
364364
const themeSetting = parameters.themeSetting;
365365
const themeField = themeSetting.themeField;
366366
const styleGroups = this.getRankStyleGroup(themeField, features, parameters);
367-
// @ts-ignore
368367
return styleGroups ? { parameters, styleGroups } : false;
369368
}
370369

@@ -527,9 +526,10 @@ export function createWebMapBaseExtending(SuperClass = Events, fireField = 'trig
527526
default:
528527
if (Util.isArray(str)) {
529528
dashArr = str;
529+
} else {
530+
str = StringExt.trim(str).replace(/\s+/g, ',');
531+
dashArr = str.replace(/\[|\]/gi, '').split(',');
530532
}
531-
str = StringExt.trim(str).replace(/\s+/g, ',');
532-
dashArr = str.replace(/\[|\]/gi, '').split(',');
533533
break;
534534
}
535535
dashArr = type === 'array' ? dashArr : dashArr.join(',');
@@ -582,7 +582,6 @@ export function createWebMapBaseExtending(SuperClass = Events, fireField = 'trig
582582
(val || val === 0) && !isNaN(+val) && values.push(parseFloat(val));
583583
}
584584
}, this);
585-
586585
let segements =
587586
values && values.length && ArrayStatistic.getArraySegments(values, segmentMethod, segmentCount);
588587
if (segements) {
@@ -726,7 +725,6 @@ export function createWebMapBaseExtending(SuperClass = Events, fireField = 'trig
726725
return;
727726
}
728727
coordEach(feature, (coordinates) => {
729-
// @ts-ignore
730728
let transCoordinates = this._unproject(coordinates);
731729
coordinates[0] = transCoordinates[0];
732730
coordinates[1] = transCoordinates[1];
@@ -949,15 +947,12 @@ export function createWebMapBaseExtending(SuperClass = Events, fireField = 'trig
949947

950948
if (animationSetting.show) {
951949
// 开启动画
952-
// @ts-ignore
953950
pointSeries[0].type = 'effectScatter';
954-
// @ts-ignore
955951
pointSeries[0].rippleEffect = {
956952
brushType: 'stroke'
957953
};
958954
} else {
959955
// 关闭动画
960-
// @ts-ignore
961956
pointSeries[0].type = 'scatter';
962957
}
963958

@@ -995,11 +990,8 @@ export function createWebMapBaseExtending(SuperClass = Events, fireField = 'trig
995990
];
996991

997992
if (lineData.length >= MAX_MIGRATION_ANIMATION_COUNT) {
998-
// @ts-ignore
999993
linesSeries[0].large = true;
1000-
// @ts-ignore
1001994
linesSeries[0].largeThreshold = 100;
1002-
// @ts-ignore
1003995
linesSeries[0].blendMode = 'lighter';
1004996
}
1005997

src/common/mapping/WebMapService.js

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { Util } from '../commontypes/Util';
44
import { QueryBySQLService } from '../iServer/QueryBySQLService';
55
import { FilterParameter } from '../iServer/FilterParameter';
66
import { QueryOption } from "../REST";
7-
import { QueryBySQLParameters } from "../iServer";
7+
import { GetFeaturesBySQLParameters, GetFeaturesBySQLService, QueryBySQLParameters } from "../iServer";
88
import { FileReaderUtil } from '../components/util/FileReaderUtil';
99
import { transformServerUrl } from "./utils/util";
1010

@@ -28,7 +28,7 @@ const MB_SCALEDENOMINATOR_4326 = [
2828
];
2929

3030
export class WebMapService {
31-
constructor(mapId, options) {
31+
constructor(mapId, options = {}) {
3232
if (typeof mapId === 'string' || typeof mapId === 'number') {
3333
this.mapId = mapId;
3434
} else if (mapId !== null && typeof mapId === 'object') {
@@ -182,10 +182,10 @@ export class WebMapService {
182182
return response.text();
183183
})
184184
.then(capabilitiesText => {
185-
const parser = new XMLParser();
185+
const parser = new XMLParser({ ignoreAttributes: false, attributeNamePrefix: '@_' });
186186
const capabilities = parser.parse(capabilitiesText);
187187
const wmsCapabilities = capabilities.WMT_MS_Capabilities || capabilities.WMS_Capabilities;
188-
resolve({ version: wmsCapabilities['_attributes']['version'] });
188+
resolve({ version: wmsCapabilities['@_version'] });
189189
});
190190
});
191191
}
@@ -229,6 +229,8 @@ export class WebMapService {
229229
// 用于决定哪些字段必须返回数组格式
230230
const alwaysArray = ['Layer', 'TileMatrixSet', 'ows:Operation', 'ows:Get', 'ResourceURL', 'Style'];
231231
const parser = new XMLParser({
232+
ignoreAttributes: false,
233+
attributeNamePrefix: '@_',
232234
//name: is either tagname, or attribute name
233235
isArray: (name) => {
234236
if(alwaysArray.indexOf(name) !== -1) {
@@ -245,30 +247,30 @@ export class WebMapService {
245247
operations = [operations];
246248
}
247249
const operation = operations.find(item => {
248-
return item._attributes.name === 'GetTile';
250+
return item['@_name'] === 'GetTile';
249251
});
250252
if (operation) {
251253
let getConstraints = operation['ows:DCP']['ows:HTTP']['ows:Get'];
252254
if (!Array.isArray(getConstraints)) {
253255
getConstraints = [getConstraints];
254256
}
255257
const getConstraint = getConstraints.find(item => {
256-
return item['ows:Constraint']['ows:AllowedValues']['ows:Value']['_text'] === 'KVP';
258+
return item['ows:Constraint']['ows:AllowedValues']['ows:Value'] === 'KVP';
257259
});
258260
if (getConstraint) {
259-
kvpResourceUrl = getConstraint['_attributes']['xlink:href'];
261+
kvpResourceUrl = getConstraint['@_xlink:href'];
260262
}
261263
}
262264
}
263265
let tileMatrixSet = content.TileMatrixSet;
264266
for (let i = 0; i < tileMatrixSet.length; i++) {
265267
if (
266268
tileMatrixSet[i]['ows:Identifier'] &&
267-
(tileMatrixSet[i]['ows:Identifier']['_text'] + '') === layerInfo.tileMatrixSet
269+
(tileMatrixSet[i]['ows:Identifier'] + '') === layerInfo.tileMatrixSet
268270
) {
269271
if (
270272
tileMatrixSet[i]['WellKnownScaleSet'] &&
271-
DEFAULT_WELLKNOWNSCALESET.includes(tileMatrixSet[i]['WellKnownScaleSet']['_text'])
273+
DEFAULT_WELLKNOWNSCALESET.includes(tileMatrixSet[i]['WellKnownScaleSet'])
272274
) {
273275
isMatched = true;
274276
} else {
@@ -282,8 +284,8 @@ export class WebMapService {
282284
mapCRS === 'EPSG:3857' ? [-2.0037508342789248e7, 2.0037508342789087e7] : [-180, 90];
283285
for (let j = 0; j < tileMatrixSet[i].TileMatrix.length; j++) {
284286
const tileMatrix = tileMatrixSet[i].TileMatrix[j];
285-
const identifier = tileMatrix['ows:Identifier']['_text'];
286-
const topLeftCorner = [...tileMatrix['TopLeftCorner']['_text'].split(' ')];
287+
const identifier = tileMatrix['ows:Identifier'];
288+
const topLeftCorner = [...tileMatrix['TopLeftCorner'].split(' ')];
287289
if (
288290
(!this.numberEqual(topLeftCorner[0], defaultCRSTopLeftCorner[0]) ||
289291
!this.numberEqual(topLeftCorner[1], defaultCRSTopLeftCorner[1])) &&
@@ -296,7 +298,7 @@ export class WebMapService {
296298
if (!defaultScaleDenominator) {
297299
break;
298300
}
299-
const scaleDenominator = parseFloat(tileMatrixSet[i].TileMatrix[j]['ScaleDenominator']['_text']);
301+
const scaleDenominator = parseFloat(tileMatrixSet[i].TileMatrix[j]['ScaleDenominator']);
300302
if (this.numberEqual(defaultScaleDenominator, scaleDenominator)) {
301303
matchedScaleDenominator[+identifier] = scaleDenominator;
302304
} else {
@@ -321,19 +323,19 @@ export class WebMapService {
321323
break;
322324
}
323325
}
324-
const layer = content.Layer.find(item => {
325-
return item['ows:Identifier']['_text'] === layerInfo.layer;
326+
const layer = content.Layer && content.Layer.find(item => {
327+
return item['ows:Identifier'] === layerInfo.layer;
326328
});
327329
if (layer) {
328330
let styles = layer.Style;
329331
if (Array.isArray(layer.Style)) {
330-
style = styles[0]['ows:Identifier'] ? styles[0]['ows:Identifier']['_text'] : '';
332+
style = styles[0]['ows:Identifier'] ? styles[0]['ows:Identifier'] : '';
331333
} else {
332-
style = styles['ows:Identifier'] ? styles['ows:Identifier']['_text'] : '';
334+
style = styles['ows:Identifier'] ? styles['ows:Identifier'] : '';
333335
}
334336
if (layer['ows:WGS84BoundingBox']) {
335-
const lowerCorner = layer['ows:WGS84BoundingBox']['ows:LowerCorner']['_text'].split(' ');
336-
const upperCorner = layer['ows:WGS84BoundingBox']['ows:UpperCorner']['_text'].split(' ');
337+
const lowerCorner = layer['ows:WGS84BoundingBox']['ows:LowerCorner'].split(' ');
338+
const upperCorner = layer['ows:WGS84BoundingBox']['ows:UpperCorner'].split(' ');
337339
bounds = [
338340
parseFloat(lowerCorner[0]),
339341
parseFloat(lowerCorner[1]),
@@ -346,10 +348,10 @@ export class WebMapService {
346348
resourceUrls = [resourceUrls];
347349
}
348350
const resourceUrl = resourceUrls.find(item => {
349-
return item._attributes.resourceType === 'tile';
351+
return item['@_resourceType'] === 'tile';
350352
});
351353
if (resourceUrl) {
352-
restResourceURL = resourceUrl._attributes.template;
354+
restResourceURL = resourceUrl['@_template'];
353355
}
354356
}
355357
resolve({ isMatched, matchMaxZoom, matchMinZoom, style, bounds, restResourceURL, kvpResourceUrl });
@@ -1188,11 +1190,11 @@ export class WebMapService {
11881190
baseProjection
11891191
) {
11901192
let getFeatureParam, getFeatureBySQLService, getFeatureBySQLParams;
1191-
getFeatureParam = new SuperMap.FilterParameter({
1193+
getFeatureParam = new FilterParameter({
11921194
name: datasetNames.join().replace(':', '@'),
11931195
attributeFilter: null
11941196
});
1195-
getFeatureBySQLParams = new SuperMap.GetFeaturesBySQLParameters({
1197+
getFeatureBySQLParams = new GetFeaturesBySQLParameters({
11961198
queryParameter: getFeatureParam,
11971199
datasetNames: datasetNames,
11981200
fromIndex: 0,
@@ -1235,7 +1237,7 @@ export class WebMapService {
12351237
}
12361238
};
12371239
const serviceUrl = this.handleParentRes(url);
1238-
getFeatureBySQLService = new SuperMap.GetFeaturesBySQLService(serviceUrl, options);
1240+
getFeatureBySQLService = new GetFeaturesBySQLService(serviceUrl, options);
12391241
getFeatureBySQLService.processAsync(getFeatureBySQLParams);
12401242
}
12411243

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy