@@ -34,6 +34,7 @@ const transformTools = new ol.format.GeoJSON();
34
34
* @param {function } [options.errorCallback] - 加载地图失败。
35
35
* @param {string } [options.credentialKey] - 凭证密钥。
36
36
* @param {string } [options.credentialValue] - 凭证值。
37
+ * @param {boolean } [options.excludePortalProxyUrl] - server传递过来的url是否带有代理
37
38
* @param {function } [options.mapSetting.mapClickCallback] - 地图被点击的回调函数
38
39
* @extends {ol.Observable }
39
40
*/
@@ -49,6 +50,7 @@ export class WebMap extends ol.Observable {
49
50
this . credentialKey = options . credentialKey ;
50
51
this . credentialValue = options . credentialValue ;
51
52
this . target = options . target || "map" ;
53
+ this . excludePortalProxyUrl = options . excludePortalProxyUrl || false ;
52
54
}
53
55
this . createMap ( options . mapSetting ) ;
54
56
this . createWebmap ( ) ;
@@ -92,13 +94,23 @@ export class WebMap extends ol.Observable {
92
94
* @description 创建webmap
93
95
*/
94
96
createWebmap ( ) {
95
- // let appUrl = this.mapUrl;
96
97
let mapUrl = Util . getRootUrl ( this . mapUrl ) + 'web/maps/' + this . mapId + '/map' ;
97
98
if ( this . credentialValue ) {
98
99
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
+ }
100
110
}
101
111
//todo 请求用户以及更新时间和地图标签等参数,暂时不需要
112
+ // let appUrl = this.mapUrl;
113
+ // appUrl += ('.json?' + this.credentialKey + '=' + this.credentialValue);
102
114
// this.getAppInfo(appUrl);
103
115
this . getMapInfo ( mapUrl ) ;
104
116
}
@@ -133,7 +145,7 @@ export class WebMap extends ol.Observable {
133
145
that . addLayers ( mapInfo ) ;
134
146
}
135
147
} ) . catch ( function ( error ) {
136
- that . errorCallback && that . errorCallback ( error , 'getMapFaild' ) ;
148
+ that . errorCallback && that . errorCallback ( error , 'getMapFaild' , that . map ) ;
137
149
} ) ;
138
150
}
139
151
/**
@@ -146,7 +158,7 @@ export class WebMap extends ol.Observable {
146
158
this . createView ( mapInfo ) ;
147
159
let layer = this . createBaseLayer ( mapInfo ) ;
148
160
this . map . addLayer ( layer ) ;
149
- if ( mapInfo . baseLayer && mapInfo . baseLayer . lableLayerVisible ) {
161
+ if ( mapInfo . baseLayer && mapInfo . baseLayer . labelLayerVisible ) {
150
162
let layerInfo = mapInfo . baseLayer ;
151
163
//存在天地图路网
152
164
let labelLayer = new ol . layer . Tile ( {
@@ -246,16 +258,26 @@ export class WebMap extends ol.Observable {
246
258
default :
247
259
break ;
248
260
}
249
- let layer = new ol . layer . Tile ( {
261
+ var layer = new ol . layer . Tile ( {
250
262
source : source ,
251
263
zIndex : layerInfo . zIndex || 0 ,
252
264
visible : layerInfo . visible
253
265
} ) ;
266
+ var layerId = Util . newGuid ( 8 ) ;
254
267
if ( layerInfo . name ) {
255
268
layer . setProperties ( {
256
- name : layerInfo . name
269
+ name : layerInfo . name ,
270
+ layerId : layerId
257
271
} ) ;
258
272
}
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 ;
259
281
return layer ;
260
282
}
261
283
/**
@@ -453,7 +475,7 @@ export class WebMap extends ol.Observable {
453
475
callback ( layerInfo ) ;
454
476
}
455
477
} ) . catch ( function ( error ) {
456
- that . errorCallback && that . errorCallback ( error , 'getWmtsFaild' )
478
+ that . errorCallback && that . errorCallback ( error , 'getWmtsFaild' , that . map )
457
479
} ) ;
458
480
}
459
481
@@ -604,6 +626,13 @@ export class WebMap extends ol.Observable {
604
626
} ) . then ( function ( response ) {
605
627
return response . json ( )
606
628
} ) . 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
+ }
607
636
if ( data && data . type ) {
608
637
if ( data . type === "JSON" || data . type === "GEOJSON" ) {
609
638
data . content = JSON . parse ( data . content ) ;
@@ -618,7 +647,7 @@ export class WebMap extends ol.Observable {
618
647
} ) . catch ( function ( error ) {
619
648
layerAdded ++ ;
620
649
that . sendMapToUser ( layerAdded , len ) ;
621
- that . errorCallback && that . errorCallback ( error , 'getLayerFaild' ) ;
650
+ that . errorCallback && that . errorCallback ( error , 'getLayerFaild' , that . map ) ;
622
651
} )
623
652
} else if ( layer . layerType === 'SUPERMAP_REST' || layer . layerType === "TILE" ||
624
653
layer . layerType === "WMS" || layer . layerType === "WMTS" ) {
@@ -653,7 +682,7 @@ export class WebMap extends ol.Observable {
653
682
} , function ( err ) {
654
683
layerAdded ++ ;
655
684
that . sendMapToUser ( layerAdded , len ) ;
656
- that . errorCallback && that . errorCallback ( err , 'getFeatureFaild' )
685
+ that . errorCallback && that . errorCallback ( err , 'getFeatureFaild' , that . map )
657
686
} ) ;
658
687
} else if ( layer . dataSource . type === "REST_MAP" && layer . dataSource . url ) {
659
688
Util . queryFeatureBySQL ( layer . dataSource . url , layer . dataSource . layerName , 'smid=1' , null , null , function ( result ) {
@@ -672,10 +701,13 @@ export class WebMap extends ol.Observable {
672
701
that . addLayer ( layer , features ) ;
673
702
layerAdded ++ ;
674
703
that . sendMapToUser ( layerAdded , len ) ;
704
+ } , function ( e ) {
705
+ layerAdded ++ ;
706
+ that . errorCallback && that . errorCallback ( e , 'getFeatureFaild' , that . map ) ;
675
707
} ) ;
676
708
}
677
709
} , function ( e ) {
678
- that . errorCallback && that . errorCallback ( e , 'getFeatureFaild' ) ;
710
+ that . errorCallback && that . errorCallback ( e , 'getFeatureFaild' , that . map ) ;
679
711
} )
680
712
}
681
713
} , this ) ;
@@ -923,12 +955,18 @@ export class WebMap extends ol.Observable {
923
955
} else if ( layerInfo . layerType === "MARKER" ) {
924
956
layer = this . createMarkerLayer ( layerInfo , features )
925
957
}
958
+ let layerId = Util . newGuid ( 8 ) ;
926
959
if ( layer && layerInfo . name ) {
927
960
layer . setProperties ( {
928
- name : layerInfo . name
961
+ name : layerInfo . name ,
962
+ layerId : layerId
929
963
} ) ;
930
964
}
931
965
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 ;
932
970
if ( layerInfo . labelStyle && layerInfo . labelStyle . labelField ) {
933
971
//存在标签专题图
934
972
this . addLabelLayer ( layerInfo , features ) ;
@@ -995,7 +1033,6 @@ export class WebMap extends ol.Observable {
995
1033
isHighLight : false ,
996
1034
onClick : function ( ) { }
997
1035
} ) ;
998
- source . refresh ( ) ;
999
1036
return new ol . layer . Image ( {
1000
1037
source : source
1001
1038
} ) ;
0 commit comments