[cesium-dev] Issue Working with Url Template for NOAA Earth in True Color Data

Hello and welcome to the community!

I’m having trouble getting the imagery to load in Sandcastle with or without the proxy. Maybe there is a CORS issue here: Perhaps ask who you contacted at NOAA if they can allow the proper headers. But I’m unable to load any imagery, so I’m having trouble reproducing the issue here.

Can you be more specific on the problem your encountering using UrlTemplateImageryProvider? That sounds like the way to go here. There is a {reverseY} keyword available to use.

You could write a custom Imagery Provider (a good reference for that would be this thread), but that seems overkill in this case.




I was able to get this working for you, but I can’t get it to load higher quality imagery as I zoom in though. All I had to do was create an ArcGisMapServerImageryProvider and point it to the following URL: ‘https://gis.nnvl.noaa.gov/arcgis/rest/services/TRUE/TRUE_daily/ImageServer’. I did not use a proxy either. However, you’ll need to modify one line in the Cesium source code (ideally this should be customizable). Change line 254 of this file: https://github.com/AnalyticalGraphicsInc/cesium/blob/7213d4d25e02deab085448250c5dca966f1dbfcc/Source/Scene/ArcGisMapServerImageryProvider.js#L254. Instead of ‘/export?’, it should instead read ‘/exportImage?’. Then it will at least load. I’m interested to hear if you can get the quality a bit higher as you zoom in.


Jason, got it working with the ArcGisMapServerImageryProvider, thank you!

Just out of curiosity, how did you figure out that that one line needed to be changed? Was it something you noticed in communication with the NOAA server, or more like a common fix type of thing? Just interested to learn more about the framework as I work with Cesium more, maybe it would help me debug something in the future too.

I see the resolution issue also, I'll try to figure out how to get that better as I develop it. Any ideas where to start on that?

And Gabby, thanks for the welcome and ideas!

I think it could be a CORS issue (or some other issue) with the Sandcastle instance on the web, I’m able to load the (incorrectly aligned) images in Sandcastle on my localhost, but not on the cesiumjs.org server, if I use that url I provided in my initial code (i.e. ‘https://www.nnvl.noaa.gov/Portal/Tiles/TRUE/TRUE.daily.20170818.color/’).

In any case, the problem is that it stops loading anything even on my local server when I try to implement template placeholders (e.g. 'https://www.nnvl.noaa.gov/Portal/Tiles/TRUE/TRUE.daily.20170818.color/{z}/{x]/{reverseY}.png'). Am I correct in assuming the same template placeholders from the UrlTemplateImageryProvider can be used when you specify the createTileMapServiceImageryProvider function?

Thanks for the custom Imagery Provider tip, I'll look into that! Even if it is overkill in this case, it could be helpful to learn how to use it. And maybe a work around if I can't get the resolution higher on the ArcGisMapServerImageryProvider also?

Thanks again to you both!

Thanks, I’ll take a look to make sure we have thing configured correctly in Sandcastle.

You can’t use template urls with createTileMapServiceImageryProvider, you’ll need to use UrlTemplateImageryProvider.

But I’m glad you are having more success with ArcGisMapServerImageryProvider!