Issues with Bing Maps Imagery

Hello. I am trying to use Cesium with UE5 on Linux. I have successfully compiled the Cesium for Unreal plugin and am able and load it into my UE project. However, whenever I try to load the Bing Maps Aerial Imagery into my project, it gets added but doesn’t actually do anything (the ground remains gray and and blank, with the Cesium World texture). For example, I can see the Bing Maps Aerial imagery under the Cesium World Terrain tileset but adding it in to my project (or removing it) does not yield any changes.
I am successfully able to load the Cesium World Texture and see a uncolored/gray but textured landscape but have had no success with the Bing Maps Imagery.

I suspected that it may be an issue with my computer trying to connect to Bing Maps Imagery API but my preliminary testing leads me to believe that this my not be the case (unless UE has some specific blockers towards it).

Does anyone know how to solve this issue?

Hi @grow,

Can you describe how you tried to add the imagery to Cesium World Terrain? For example, did you add it via the Cesium ion Assets window? Or did you attach a raster overlay component manually?

Thanks for your help. I tried to add imagery through both the Quick Add Cesium ion Assets (Cesium World Terrain + Bing Maps Aerial imagery) and also the Cesium ion Assets window (Bing Maps Aerial → Drape Over Terrain Tileset and Use as Terrain Tileset Base Layer).

Update here.

I believe the issue has something to do with UE or Cesium not properly communicating with the Bing Maps API. I tried adding imagery through the “CesiumBingMapsRasterOverlay” component and received the following error:
LogCesium: Error: [2023-07-26 13:10:02.016] [error] [RasterOverlayCollection.cpp:127] Received an error from the Bing Maps imagery metadata service: Access was denied. You may have entered your credentials incorrectly, or you might not have access to the requested resource or operation.

Earlier, I was able to connect to the Bing Maps API through my computer with a Bing Maps Key I generated on another personal account, leading me to believe that this is either a Cesium or Unreal problem. Cesium Ion is supposed to have access to Bing Maps but that seems to not be the case.

Is there anywhere I need to go in order to configure a key in either Cesium or Unreal so that I can access the Bing Maps API?

If you’re trying to use Bing Maps via Cesium ion, you need to use the Cesium ion Raster Overlay, not the Bing Maps Raster Overlay. Specify an asset ID of 2 (satellite imagery only) or 3 (satellite imagery plus roads). The Bing Maps Raster Overlay is only for connecting directly with Bing Maps using a Bing Maps key generated in Azure. If you have one, you should be able to specify it as a property on the Bing overlay and it should work, but I have to admit I haven’t tried this recently. I vaguely remember Microsoft has made some changes in their keys recently, so that may have broken something.

Thank you for your reply. Unfortunately, neither of these techniques solved my issue. I tried both of these methods (Cesium ion Raster Overlay + correct asset ID and Bing Maps Raster Overlay + my Bing Maps Key). I was able to successfully add them as assets, however, my screen still appears without the imagery. What’s even more strange is that I can enable and see the credits for the asset on the screen, but the asset appears invisible still (Show Credits on Screen setting). This makes me think its not a connection problem, but a problem with either Cesium or the UE not being able to set the imagery properly (i.e. I can successfully load the asset, but the engine isn’t visualizing it properly). Are there any solutions for this or ways to further debug this?

Have you perhaps specified a custom material on the tileset?

Cesium World Terrain plus Bing Maps via a Cesium ion Raster Overlay is used by virtually every level in the Cesium for Unreal Samples project. So, does it work for you in that project? You can install it with the Epic Launcher.

If it works there but not in your project, what is different?

I have tried the samples as well. None of the imagery datasets work there either. It appears to be a problem beyond my specific project.

Hmm the Samples project is definitely working for me and others. So my best guess at this point is that something on your system or network is blocking Bing Maps. Can you try a different computer or network to see if that helps?

Unfortunately, I don’t think that’s possible right now. However, I have verified that I am able to connect to the Bing Maps API and get imagery data from it on my computer. While an issue with network or system access seems plausible, I don’t see why I could successfully write a program to retrieve Bing Maps Imagery while Cesium is unable to because of network access. Are there any known issues with Cesium or Unreal visualizing imagery, possibly specifically on Linux?

Well, one possible explanation is that your web browser is configured to use a proxy, and so it works. Unreal won’t use the same proxy automatically, so if one is required to access Bing Maps on your network, then that would explain what you’re seeing.

Cesium World Terrain + Bing Maps is a fundamental feature of Cesium for Unreal. If that weren’t working in general right now, I think we’d be drowning in complaints! :slight_smile: