Rounding the Service Pixel Value in a PopupTemplate

440
1
Jump to solution
08-06-2020 02:14 AM
Giannalogy
Occasional Contributor

Hello,

I have an 32 bit Float single-band ImageryLayer with a popupTemplate assigned.

The popup shows the raster service pixel value with the following code:

const variableLayer = new ImageryLayer({
       url: 'https://this_is_a_fake_url/ImageServer',
       popupTemplate: {
            title: '{Raster.ServicePixelValue} variable count(s) in {Year}' 
            content: [],
       },
});‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Is there a way to round the service pixel value which is displayed in the popup? Note: I do not want to round the raster data pixels themselves.

I've tried something like this: 

const variableLayer = new ImageryLayer({
       url: 'https://this_is_a_fake_url/ImageServer',
       popupTemplate: {
            //title: '{Raster.ServicePixelValue} variable count(s) in {Year}'
            content: '{expression/pixelvalue} variable count(s) in {Year}',
            expressionInfos: [{
                    name: 'pixelvalue',
                    expression: 'Round($Raster.ServicePixelValue, 2)'
            }]
       },
});‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Any combination of experimenting that I've tried has resulted in either undefined or null in the place where the pixel value should be displayed in the popup.

Any help is massively appreciated! Thank you for reading.

0 Kudos
1 Solution

Accepted Solutions
Giannalogy
Occasional Contributor

I've found the answer on the updated page for popupTemplate

let popupTemplate = {
   title: '',
   fieldInfos: [{
      fieldName: 'Raster.ItemPixelValue',
      format: {
         places: 0, // precision
         digitSeparator: true // thousands comma separator
            }
   }]
};

View solution in original post

1 Reply
Giannalogy
Occasional Contributor

I've found the answer on the updated page for popupTemplate

let popupTemplate = {
   title: '',
   fieldInfos: [{
      fieldName: 'Raster.ItemPixelValue',
      format: {
         places: 0, // precision
         digitSeparator: true // thousands comma separator
            }
   }]
};