@@ -287,8 +287,9 @@ export class WebMap extends Observable {
287287 let that = this ,
288288 mapUrl = url ;
289289 if ( url . indexOf ( '.json' ) === - 1 ) {
290+ url = this . handleJSONSuffix ( url ) ;
290291 //传递过来的url,没有包括.json,在这里加上。
291- mapUrl = ` ${ url } .json`
292+ mapUrl = url ;
292293 }
293294 FetchRequest . get ( that . getRequestUrl ( mapUrl ) , null , {
294295 withCredentials : this . withCredentials
@@ -543,7 +544,8 @@ export class WebMap extends Observable {
543544
544545 let source ;
545546 if ( baseLayerType === "TILE" ) {
546- FetchRequest . get ( me . getRequestUrl ( `${ url } .json` ) , null , {
547+ url = this . handleJSONSuffix ( url ) ;
548+ FetchRequest . get ( me . getRequestUrl ( url ) , null , {
547549 withCredentials : this . withCredentials
548550 } ) . then ( function ( response ) {
549551 return response . json ( ) ;
@@ -1354,7 +1356,8 @@ export class WebMap extends Observable {
13541356 url = `${ url } &token=${ encodeURI ( credential . token ) } ` ;
13551357 token = credential . token ;
13561358 }
1357- return FetchRequest . get ( that . getRequestUrl ( `${ url } .json` ) , null , options ) . then ( function ( response ) {
1359+ url = this . handleJSONSuffix ( url ) ;
1360+ return FetchRequest . get ( that . getRequestUrl ( url ) , null , options ) . then ( function ( response ) {
13581361 return response . json ( ) ;
13591362 } ) . then ( async ( result ) => {
13601363 if ( result . succeed === false ) {
@@ -1399,7 +1402,8 @@ export class WebMap extends Observable {
13991402 that . credentialValue = layerInfo . credential = layerInfo . url . split ( "?token=" ) [ 1 ] ;
14001403 layerInfo . url = layerInfo . url . split ( "?token=" ) [ 0 ] ;
14011404 }
1402- return FetchRequest . get ( that . getRequestUrl ( `${ layerInfo . url } .json` ) , null , options ) . then ( function ( response ) {
1405+ let url = this . handleJSONSuffix ( layerInfo . url ) ;
1406+ return FetchRequest . get ( that . getRequestUrl ( url ) , null , options ) . then ( function ( response ) {
14031407 return response . json ( ) ;
14041408 } ) . then ( async function ( result ) {
14051409 // layerInfo.projection = mapInfo.projection;
@@ -2104,7 +2108,8 @@ export class WebMap extends Observable {
21042108 getDataflowInfo ( layerInfo , success , faild ) {
21052109 let that = this ;
21062110 let url = layerInfo . url , token ;
2107- let requestUrl = that . getRequestUrl ( `${ url } .json` , false ) ;
2111+ url = this . handleJSONSuffix ( url ) ;
2112+ let requestUrl = that . getRequestUrl ( url , false ) ;
21082113 if ( layerInfo . credential && layerInfo . credential . token ) {
21092114 token = layerInfo . credential . token ;
21102115 requestUrl += `?token=${ token } ` ;
@@ -2984,11 +2989,14 @@ export class WebMap extends Observable {
29842989 async createVectorLayer ( layerInfo , features ) {
29852990 const { featureType, style} = layerInfo ;
29862991 let newStyle ;
2987- if ( featureType === 'LINE' && Util . isArray ( style ) ) {
2992+ if ( featureType === 'LINE' && Util . isArray ( style ) && style . length === 2 ) {
29882993 const [ outlineStyle , strokeStyle ] = style ;
2989- newStyle = strokeStyle . lineDash === 'solid' ? StyleUtils . getRoadPath ( strokeStyle , outlineStyle )
2994+ newStyle = ( ! strokeStyle . lineDash || strokeStyle . lineDash === 'solid' ) ? StyleUtils . getRoadPath ( strokeStyle , outlineStyle )
29902995 : StyleUtils . getPathway ( strokeStyle , outlineStyle ) ;
29912996 } else {
2997+ if ( Util . isArray ( style ) ) {
2998+ layerInfo . style = style [ 0 ] ;
2999+ }
29923000 newStyle = await StyleUtils . toOpenLayersStyle ( layerInfo . style , layerInfo . featureType ) ;
29933001 }
29943002 return new olLayer . Vector ( {
@@ -5147,4 +5155,15 @@ export class WebMap extends Observable {
51475155 }
51485156 return [ 'EPSG:-1000' , 'EPSG:-1' ] . includes ( projection ) ;
51495157 }
5158+
5159+ handleJSONSuffix ( url ) {
5160+ if ( url . includes ( '?' ) ) {
5161+ let urlArr = url . split ( '?' ) ;
5162+ urlArr [ 0 ] = urlArr [ 0 ] + ".json" ;
5163+ url = urlArr . join ( '?' ) ;
5164+ } else {
5165+ url = url + ".json"
5166+ }
5167+ return url ;
5168+ }
51505169}
0 commit comments