Skip to content

Commit b950239

Browse files
committed
feat 可感知图层新增dataSource vector的非restmap 类型
1 parent 1401925 commit b950239

2 files changed

Lines changed: 1196 additions & 8 deletions

File tree

src/common/mapping/utils/SourceListModelV3.js

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ export class SourceListModelV3 extends AppreciableLayerBase {
133133
reused: layer.metadata && layer.metadata.reused
134134
};
135135
const matchProjectCatalog = projectCataglogs.find((item) => item.id === layerCatalog.id) || {};
136-
const { msDatasetId, relationMsDatasetId } = matchProjectCatalog;
136+
const { msDatasetId, relationMsDatasetId, serviceLayerId } = matchProjectCatalog;
137137
let dataSource = {};
138138
if (msDatasetId) {
139139
for (const data of datas) {
@@ -174,16 +174,33 @@ export class SourceListModelV3 extends AppreciableLayerBase {
174174
const sourceOnMap = this.map.getSource(layer.source);
175175
if (!Object.keys(dataSource).length && sourceOnMap && sourceOnMap.type === 'vector') {
176176
const matchSource = this._mapInfo.sources[layer.source] || sourceOnMap;
177-
if (matchSource.tiles && matchSource.tiles[0].includes('/rest/maps/')) {
177+
if (matchSource.tiles && matchSource.tiles.length > 0) {
178178
const tileUrl = matchSource.tiles[0];
179-
const [serverUrl, leftParts] = tileUrl.split('/rest/maps/');
180-
const [mapName] = leftParts.split('/tileFeature');
181-
dataSource.url = `${serverUrl}/rest/maps`;
182-
dataSource.mapName = mapName;
183-
dataSource.type = 'REST_MAP';
179+
switch (true) {
180+
case tileUrl.includes('/rest/maps/'): {
181+
const [serverUrl, leftParts] = tileUrl.split('/rest/maps/');
182+
const [mapName] = leftParts.split('/tileFeature');
183+
dataSource.url = `${serverUrl}/rest/maps`;
184+
dataSource.mapName = mapName;
185+
dataSource.type = 'REST_MAP';
186+
break;
187+
}
188+
case tileUrl.includes('/restjsr/v1/'): {
189+
const [serverUrl, leftParts] = tileUrl.split('/restjsr/v1/');
190+
const [mapName] = leftParts.split('/tiles/');
191+
dataSource.url = `${serverUrl}/restjsr/v1/vectortile/maps`;
192+
dataSource.mapName = mapName;
193+
dataSource.type = 'RESTJSR';
194+
break;
195+
}
196+
default: {
197+
dataSource.url = tileUrl;
198+
dataSource.type = 'VECTOR_OTHER';
199+
}
200+
}
184201
}
185202
}
186-
layerInfo.dataSource = dataSource;
203+
layerInfo.dataSource = Object.assign(dataSource, { serviceLayerId });
187204
if (this._l7LayerUtil.isL7Layer(layer)) {
188205
layerInfo.CLASS_NAME = 'L7Layer';
189206
}

0 commit comments

Comments
 (0)