dear cesium team,
i have a tms map folder, and a local server
i dont want a terrain i just want the map to be published on cesium for unreal
i used a 3dtileset and changed the source to url and its value is http://localhost:5555/home/me/Desktop/myMap/tilemapresource.xml
and i also added a component TMS and gave it the same url.
in logCesium: loading tileset from url is done
but its not requesting any tile
and nothing is shown on the globe.
my xml file is correct.
what i am missing?
i have 7 actors:
cesium3dTileset
cesiumcameraManager
cesiumCreditSystemBP
cesiumGeoreference
cesiumSunSky
PlayerStart
PostProcessVolume.
i am using UE4.27 and 1.24 cesium
this is my xml
<?xml version="1.0" encoding="utf-8"?>
<TileMap version="1.0.0">
<Title>XYZ-Compatible TMS</Title>
<SRS>EPSG:3857</SRS>
<BoundingBox
minx="-20037508.342789"
miny="-20037508.342789"
maxx="20037508.342789"
maxy="20037508.342789" />
<Origin x="-20037508.342789" y="-20037508.342789" />
<TileFormat width="256" height="256" mime-type="image/jpeg" extension="jpg" />
<TileSets profile="global-mercator">
<TileSet href="1" units-per-pixel="156543.0339280410" order="1" />
<TileSet href="2" units-per-pixel="78271.5169640205" order="2" />
<TileSet href="3" units-per-pixel="39135.7584820102" order="3" />
<TileSet href="4" units-per-pixel="19567.8792410051" order="4" />
<TileSet href="5" units-per-pixel="9783.9396205026" order="5" />
<TileSet href="6" units-per-pixel="4891.9698102513" order="6" />
<TileSet href="7" units-per-pixel="2445.9849051256" order="7" />
<TileSet href="8" units-per-pixel="1222.9924525628" order="8" />
<TileSet href="9" units-per-pixel="611.4962262814" order="9" />
<TileSet href="10" units-per-pixel="305.7481131407" order="10" />
<TileSet href="11" units-per-pixel="152.8740565704" order="11" />
<TileSet href="12" units-per-pixel="76.4370282852" order="12" />
<TileSet href="13" units-per-pixel="38.2185141426" order="13" />
<TileSet href="14" units-per-pixel="19.1092570713" order="14" />
<TileSet href="15" units-per-pixel="9.5546285356" order="15" />
<TileSet href="16" units-per-pixel="4.7773142678" order="16" />
<TileSet href="17" units-per-pixel="2.3886571339" order="17" />
<TileSet href="18" units-per-pixel="1.1943285670" order="18" />
<TileSet href="19" units-per-pixel="0.5971642835" order="19" />
</TileSets>
</TileMap>
@annalamita To use a Raster Overlay, you’ll need to have some terrain to overlay it on. I think what you’re looking for is, instead of setting the URL to the tilemapresource.xml on the Cesium3DTileset, you’ll want to select the “From Ellipsoid” option under “Tileset Source.” This will provide you with a globe for your TMS overlay to appear on.
Actually, I notice you’re using Cesium 1.24. This version is over two years old, so it won’t have the ellipsoid tileset source option as this was added in 2.11. Is there a reason you need to stick with Unreal 4.27?
thank you for your answer.
i have the .terrain data which are the height map.
i changed the url to the layer.json file for the terrain.
and let the tms url in the tmsRasteroverlay but nothing happened.
if it can be done on the unreal 4.27 with the cesium 1.24 it will save a lot of efforts for me.
so if you can tell me how to do it with this version i will appreciate it.
thanks in advance.
Your terrain URL goes in the cesium3dtiles actor. In details panel change source to URL. It can be done in two ways
- Now either you can create local http server. go to directory where your tileset is present.
python -m http.server 8000
and add http://localhost:8000/layer.json
in source field.
or
- Directly paste the absoulate path of your layer.json file to serve terrain tiles.
For example, if the file is at
C:\Users\username\MyProject\Data\Tileset\layer.json
would become
file:///C:/Users/username/MyProject/Data/Tileset/layer.json
Paste your edited path in the Url field on the tileset. Avoid any spaces in path if possible and if you can’t then add %20
in place of space in final path.
and
for imagery you need to add the TileMapServiceRasterOverlay component to cesium3dtiles actor and there you need to paste the url in TMSrasteroverlay component.
again follow the same as above just change the port if you are going to serve it using python.
If you are using geoserver or any other gis software to serve TMSimagery then you can publish the service there and use that url.
now click on the cesium3dtileset actor and click refresh tileset in details panel
thank you Ankit_k.
i did this also but it is not working.
UE is not requesting terrain files and it is not requesting any imagery tiles.
it takes the xml and the json files but it holds there. nothing is being requested.
i think that the problem is the ellipsoid. I am waiting @azrogers to tell me how to do it using UE4 and cesium 1.24.
@annalamita If you are providing quantized mesh terrain, Unreal should be loading it. If you can share the logs from Unreal, that might help us track down why it’s not being loaded.
As for the Ellipsoid tileset, unfortunately there’s not much you can do to use it in a years out-of-date version of Cesium for Unreal. You could try backporting it yourself to the older version, I suppose, but I think it would be much less work to upgrade to the latest version of Unreal.
@azrogers i understand that if i provide quantized mesh terrain in 3dtileset with tms imagery layer as a component. the terrain and the imagery should be visible to me right?
thank you for you reply 