@@ -280,45 +280,48 @@ const OmeroImage = function(options) {
280280
281281 // maps parameter (incl. inverted)
282282 var maps = [ ] ;
283- // add channel param
284- url += 'c=' ;
283+ var channels = [ ] ;
284+
285285 var channelsLength = this . channels_info_ . length ;
286286 for ( var c = 0 ; c < channelsLength ; c ++ ) {
287+ let ch = "" ;
287288 var channelInfo = this . channels_info_ [ c ] ;
288- if ( c != 0 ) url += ',' ;
289+
290+ // We ONLY include active channels in URL parameters to reduce query length
291+ if ( ! channelInfo [ 'active' ] ) continue ;
289292
290293 // amend url with channel info
291- url += ( ! channelInfo [ 'active' ] ? "-" : "" ) + ( c + 1 ) ;
292- url += "|" + channelInfo [ 'start' ] + ":" + channelInfo [ 'end' ] ;
293- url += "$" + channelInfo [ 'color' ] ; // color info
294+ ch += ( ! channelInfo [ 'active' ] ? "-" : "" ) + ( c + 1 ) ;
295+ ch += "|" + channelInfo [ 'start' ] + ":" + channelInfo [ 'end' ] ;
296+ ch += "$" + channelInfo [ 'color' ] ; // color info
294297
295298 var m = { } ;
296- if ( channelInfo [ 'active' ] ) {
297- m [ "inverted" ] = { "enabled" :
298- typeof channelInfo [ 'inverted' ] === 'boolean' &&
299- channelInfo [ 'inverted' ]
300- }
299+ m [ "inverted" ] = { "enabled" :
300+ typeof channelInfo [ 'inverted' ] === 'boolean' &&
301+ channelInfo [ 'inverted' ]
302+ }
301303
302- // Only need to include family if different from default
303- var family = channelInfo [ 'family' ] ;
304- var family_not_default = ( family !== "linear" ||
305- ( family === "linear" && this . saved_channels_info_ [ c ] [ "family" ] !== "linear" ) ) ;
306- if ( typeof family === 'string' &&
307- family !== "" &&
308- family_not_default &&
309- typeof channelInfo [ 'coefficient' ] === 'number' &&
310- ! isNaN ( channelInfo [ 'coefficient' ] ) ) {
311- m [ "quantization" ] = {
312- "family" : family ,
313- } ;
314- // Only need coefficient if family is not 'linear' or 'logarithmic'
315- if ( family !== 'linear' && family !== 'logarithmic' ) {
316- m [ "quantization" ] [ "coefficient" ] = channelInfo [ 'coefficient' ] ;
317- }
318- }
304+ // Only need to include family if different from default
305+ var family = channelInfo [ 'family' ] ;
306+ var family_not_default = ( family !== "linear" ||
307+ ( family === "linear" && this . saved_channels_info_ [ c ] [ "family" ] !== "linear" ) ) ;
308+ if ( typeof family === 'string' &&
309+ family !== "" &&
310+ family_not_default &&
311+ typeof channelInfo [ 'coefficient' ] === 'number' &&
312+ ! isNaN ( channelInfo [ 'coefficient' ] ) ) {
313+ m [ "quantization" ] = {
314+ "family" : family ,
315+ } ;
316+ // Only need coefficient if family is not 'linear' or 'logarithmic'
317+ if ( family !== 'linear' && family !== 'logarithmic' ) {
318+ m [ "quantization" ] [ "coefficient" ] = channelInfo [ 'coefficient' ] ;
319+ }
319320 }
321+ channels . push ( ch ) ;
320322 maps . push ( m ) ;
321323 }
324+ url += "c=" + channels . join ( "," ) ;
322325 url += "&maps=" + JSON . stringify ( maps ) ;
323326 url += '&m=' + this . image_model_ ;
324327 url += '&p=' + this . image_projection_ ;
0 commit comments