@@ -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