@@ -34,6 +34,7 @@ const transformTools = new ol.format.GeoJSON();
3434 * @param {function } [options.errorCallback] - 加载地图失败。
3535 * @param {string } [options.credentialKey] - 凭证密钥。
3636 * @param {string } [options.credentialValue] - 凭证值。
37+ * @param {boolean } [options.excludePortalProxyUrl] - server传递过来的url是否带有代理
3738 * @param {function } [options.mapSetting.mapClickCallback] - 地图被点击的回调函数
3839 * @extends {ol.Observable }
3940 */
@@ -49,6 +50,7 @@ export class WebMap extends ol.Observable {
4950 this . credentialKey = options . credentialKey ;
5051 this . credentialValue = options . credentialValue ;
5152 this . target = options . target || "map" ;
53+ this . excludePortalProxyUrl = options . excludePortalProxyUrl || false ;
5254 }
5355 this . createMap ( options . mapSetting ) ;
5456 this . createWebmap ( ) ;
@@ -92,13 +94,23 @@ export class WebMap extends ol.Observable {
9294 * @description 创建webmap
9395 */
9496 createWebmap ( ) {
95- // let appUrl = this.mapUrl;
9697 let mapUrl = Util . getRootUrl ( this . mapUrl ) + 'web/maps/' + this . mapId + '/map' ;
9798 if ( this . credentialValue ) {
9899 mapUrl += ( '.json?' + this . credentialKey + '=' + this . credentialValue ) ;
99- // appUrl += ('.json?' + this.credentialKey + '=' + this.credentialValue);
100+
101+ }
102+ let filter = 'getUrlResource.json?url=' ;
103+ if ( this . excludePortalProxyUrl && this . mapUrl . indexOf ( filter ) > - 1 ) {
104+ //大屏需求,或者有加上代理的
105+ let urlArray = this . mapUrl . split ( filter ) ;
106+ if ( urlArray . length > 1 ) {
107+ let url = urlArray [ 1 ] ;
108+ mapUrl = urlArray [ 0 ] + filter + Util . getRootUrl ( url ) + 'web/maps/' + this . mapId + '/map.json' ;
109+ }
100110 }
101111 //todo 请求用户以及更新时间和地图标签等参数,暂时不需要
112+ // let appUrl = this.mapUrl;
113+ // appUrl += ('.json?' + this.credentialKey + '=' + this.credentialValue);
102114 // this.getAppInfo(appUrl);
103115 this . getMapInfo ( mapUrl ) ;
104116 }
@@ -133,7 +145,7 @@ export class WebMap extends ol.Observable {
133145 that . addLayers ( mapInfo ) ;
134146 }
135147 } ) . catch ( function ( error ) {
136- that . errorCallback && that . errorCallback ( error , 'getMapFaild' ) ;
148+ that . errorCallback && that . errorCallback ( error , 'getMapFaild' , that . map ) ;
137149 } ) ;
138150 }
139151 /**
@@ -146,7 +158,7 @@ export class WebMap extends ol.Observable {
146158 this . createView ( mapInfo ) ;
147159 let layer = this . createBaseLayer ( mapInfo ) ;
148160 this . map . addLayer ( layer ) ;
149- if ( mapInfo . baseLayer && mapInfo . baseLayer . lableLayerVisible ) {
161+ if ( mapInfo . baseLayer && mapInfo . baseLayer . labelLayerVisible ) {
150162 let layerInfo = mapInfo . baseLayer ;
151163 //存在天地图路网
152164 let labelLayer = new ol . layer . Tile ( {
@@ -246,16 +258,26 @@ export class WebMap extends ol.Observable {
246258 default :
247259 break ;
248260 }
249- let layer = new ol . layer . Tile ( {
261+ var layer = new ol . layer . Tile ( {
250262 source : source ,
251263 zIndex : layerInfo . zIndex || 0 ,
252264 visible : layerInfo . visible
253265 } ) ;
266+ var layerId = Util . newGuid ( 8 ) ;
254267 if ( layerInfo . name ) {
255268 layer . setProperties ( {
256- name : layerInfo . name
269+ name : layerInfo . name ,
270+ layerId : layerId
257271 } ) ;
258272 }
273+ if ( ! mapInfo . baseLayer ) {
274+ //不是底图
275+ layer . setVisible ( layerInfo . visible ) ;
276+ layerInfo . opacity && layer . setOpacity ( layerInfo . opacity ) ;
277+ }
278+ //否则没有ID,对不上号
279+ layerInfo . layer = layer ;
280+ layerInfo . layerId = layerId ;
259281 return layer ;
260282 }
261283 /**
@@ -453,7 +475,7 @@ export class WebMap extends ol.Observable {
453475 callback ( layerInfo ) ;
454476 }
455477 } ) . catch ( function ( error ) {
456- that . errorCallback && that . errorCallback ( error , 'getWmtsFaild' )
478+ that . errorCallback && that . errorCallback ( error , 'getWmtsFaild' , that . map )
457479 } ) ;
458480 }
459481
@@ -604,6 +626,13 @@ export class WebMap extends ol.Observable {
604626 } ) . then ( function ( response ) {
605627 return response . json ( )
606628 } ) . then ( function ( data ) {
629+ if ( ! data . succeed === false ) {
630+ //请求失败
631+ layerAdded ++ ;
632+ that . sendMapToUser ( layerAdded , len ) ;
633+ that . errorCallback && that . errorCallback ( data . error , 'getLayerFaild' , that . map ) ;
634+ return ;
635+ }
607636 if ( data && data . type ) {
608637 if ( data . type === "JSON" || data . type === "GEOJSON" ) {
609638 data . content = JSON . parse ( data . content ) ;
@@ -618,7 +647,7 @@ export class WebMap extends ol.Observable {
618647 } ) . catch ( function ( error ) {
619648 layerAdded ++ ;
620649 that . sendMapToUser ( layerAdded , len ) ;
621- that . errorCallback && that . errorCallback ( error , 'getLayerFaild' ) ;
650+ that . errorCallback && that . errorCallback ( error , 'getLayerFaild' , that . map ) ;
622651 } )
623652 } else if ( layer . layerType === 'SUPERMAP_REST' || layer . layerType === "TILE" ||
624653 layer . layerType === "WMS" || layer . layerType === "WMTS" ) {
@@ -653,7 +682,7 @@ export class WebMap extends ol.Observable {
653682 } , function ( err ) {
654683 layerAdded ++ ;
655684 that . sendMapToUser ( layerAdded , len ) ;
656- that . errorCallback && that . errorCallback ( err , 'getFeatureFaild' )
685+ that . errorCallback && that . errorCallback ( err , 'getFeatureFaild' , that . map )
657686 } ) ;
658687 } else if ( layer . dataSource . type === "REST_MAP" && layer . dataSource . url ) {
659688 Util . queryFeatureBySQL ( layer . dataSource . url , layer . dataSource . layerName , 'smid=1' , null , null , function ( result ) {
@@ -672,10 +701,13 @@ export class WebMap extends ol.Observable {
672701 that . addLayer ( layer , features ) ;
673702 layerAdded ++ ;
674703 that . sendMapToUser ( layerAdded , len ) ;
704+ } , function ( e ) {
705+ layerAdded ++ ;
706+ that . errorCallback && that . errorCallback ( e , 'getFeatureFaild' , that . map ) ;
675707 } ) ;
676708 }
677709 } , function ( e ) {
678- that . errorCallback && that . errorCallback ( e , 'getFeatureFaild' ) ;
710+ that . errorCallback && that . errorCallback ( e , 'getFeatureFaild' , that . map ) ;
679711 } )
680712 }
681713 } , this ) ;
@@ -923,12 +955,18 @@ export class WebMap extends ol.Observable {
923955 } else if ( layerInfo . layerType === "MARKER" ) {
924956 layer = this . createMarkerLayer ( layerInfo , features )
925957 }
958+ let layerId = Util . newGuid ( 8 ) ;
926959 if ( layer && layerInfo . name ) {
927960 layer . setProperties ( {
928- name : layerInfo . name
961+ name : layerInfo . name ,
962+ layerId : layerId
929963 } ) ;
930964 }
931965 layer && this . map . addLayer ( layer ) ;
966+ layerInfo . layer = layer ;
967+ layerInfo . opacity && layer . setOpacity ( layerInfo . opacity ) ;
968+ layer . setVisible ( layerInfo . visible ) ;
969+ layerInfo . layerId = layerId ;
932970 if ( layerInfo . labelStyle && layerInfo . labelStyle . labelField ) {
933971 //存在标签专题图
934972 this . addLabelLayer ( layerInfo , features ) ;
@@ -995,7 +1033,6 @@ export class WebMap extends ol.Observable {
9951033 isHighLight : false ,
9961034 onClick : function ( ) { }
9971035 } ) ;
998- source . refresh ( ) ;
9991036 return new ol . layer . Image ( {
10001037 source : source
10011038 } ) ;
0 commit comments