@@ -38,15 +38,19 @@ <h5 class="panel-title text-center" data-i18n="resources.title_createTempLayer">
3838 type ="button "
3939 class ="btn btn-default "
4040 data-i18n ="[value]resources.text_create "
41- onclick ="createTempLayer () "
41+ onclick ="updateTempLayer () "
4242 />
4343 </ div >
4444 </ div >
4545 < div id ="map " style ="margin: 0 auto; width: 100%; height: 100% "> </ div >
4646 < script type ="text/javascript " src ="../../dist/maplibregl/include-maplibregl.js "> </ script >
4747 < script type ="text/javascript ">
4848 var host = window . isLocal ? window . server : 'https://iserver.supermap.io' ;
49- var url = host + '/iserver/services/map-World/rest/maps/World' ;
49+ var layerInfoService ,
50+ tempLayer ,
51+ newResourceID ,
52+ result ,
53+ url = host + '/iserver/services/map-world/rest/maps/World' ;
5054 var map = new maplibregl . Map ( {
5155 container : 'map' ,
5256 style : {
@@ -57,28 +61,26 @@ <h5 class="panel-title text-center" data-i18n="resources.title_createTempLayer">
5761 center : [ 0 , 0 ] ,
5862 zoom : 2
5963 } ) ;
60- createTempLayer ( ) ;
64+ map . on ( 'load' , function ( ) {
65+ createTempLayer ( ) ;
66+ } ) ;
6167
6268 function createTempLayer ( ) {
6369 new maplibregl . supermap . LayerInfoService ( url ) . getLayersInfo ( ) . then ( ( serviceResult ) => {
64- var result = serviceResult . result ;
65- result . subLayers . layers . map ( function ( layer , index ) {
66- if ( index === 15 ) {
67- layer . gamma = document . getElementById ( "gammaParam" ) . value || 1 ;
70+ result = serviceResult . result ;
71+ layer = result . subLayers . layers [ 15 ]
72+ layer . gamma = document . getElementById ( 'gammaParam' ) . value || 1 ;
6873 result . subLayers . layers = [ layer ] ;
69- new maplibregl . supermap . LayerInfoService ( url )
70- . setLayersInfo (
74+ layerInfoService = new maplibregl . supermap . LayerInfoService ( url )
75+ layerInfoService . setLayersInfo (
7176 new maplibregl . supermap . SetLayersInfoParameters ( {
7277 layersInfo : result
7378 } )
7479 )
7580 . then ( ( res ) => {
7681 var result = res . result ;
82+ newResourceID = result . newResourceID ;
7783 if ( result && result . newResourceID ) {
78- if ( map . getLayer ( 'layer' ) ) {
79- map . removeLayer ( 'layer' ) ;
80- map . removeSource ( 'layer' ) ;
81- }
8284 map . addLayer ( {
8385 id : 'layer' ,
8486 type : 'raster' ,
@@ -93,10 +95,27 @@ <h5 class="panel-title text-center" data-i18n="resources.title_createTempLayer">
9395 } ) ;
9496 }
9597 } ) ;
96- }
97- } ) ;
9898 } ) ;
9999 }
100+
101+ function updateTempLayer ( ) {
102+ if ( ! newResourceID ) {
103+ return ;
104+ }
105+ var layer = result . subLayers . layers [ 0 ] ;
106+ layer . gamma = document . getElementById ( "gammaParam" ) . value || 1 ;
107+ layerInfoService . setLayersInfo (
108+ new maplibregl . supermap . SetLayersInfoParameters ( {
109+ layersInfo : result ,
110+ resourceID : newResourceID ,
111+ isTempLayers : true
112+ } )
113+ ) . then ( ( res ) => {
114+ map . style . sourceCaches [ 'layer' ] . clearTiles ( ) ;
115+ map . style . sourceCaches [ 'layer' ] . update ( map . transform ) ;
116+ map . triggerRepaint ( ) ;
117+ } ) ;
118+ }
100119 </ script >
101120 </ body >
102121</ html >
0 commit comments