Hello everyone,
I’m working on a project to create something similar to Google Earth using Cesium for Unreal Engine, and I would greatly appreciate any guidance, suggestions, or pointers. My primary goals are to create a realistic 3D globe while integrating metadata such as city names, borders, and other geographic details for an offline version or through a local server using pre-downloaded data. Below is an outline of what I am trying to achieve and where I could use help:
What I’m Trying to Achieve:
-
Base Layer:
- A realistic globe with satellite imagery (raster tiles) and terrain elevation using Cesium.
-
Metadata Integration:
- Adding metadata like city names, country/state borders, and other relevant features.
- Displaying this data as overlays, labels, or interactive elements.
-
Offline Capability:
- Using OpenStreetMap (OSM) data (downloaded in
.osm.pbf
format) to stream metadata locally. - Running a local server to serve this data, either as vector tiles or other formats.
- Using OpenStreetMap (OSM) data (downloaded in
-
Vector Tiles:
- Exploring the use of vector tiles for better control over styling and zoom-dependent level of detail.
- Streaming or rendering vector tiles dynamically over the globe.
What I’ve Done So Far:
- I have downloaded
.osm.pbf
data from OpenStreetMap. - I’ve set up a basic globe using the Cesium plugin in Unreal Engine, including terrain and raster imagery.
- I’m familiar with setting up local tile servers like TileServer GL and MapTiler for serving OSM data, but I need help integrating this with Cesium in Unreal.
Challenges I’m Facing:
-
Integrating Vector Tiles in Unreal Engine:
- I need a way to dynamically load and render vector tiles (e.g.,
.pbf
files) in Unreal, preferably using the Cesium plugin.
- I need a way to dynamically load and render vector tiles (e.g.,
-
Metadata Visualization:
- How to overlay metadata like city labels, roads, and borders on the Cesium globe.
- Ensuring accurate placement and alignment of vector data on a 3D globe.
-
Offline Workflow:
- Setting up an efficient workflow to fetch and serve OSM data offline.
- Ensuring smooth performance and manageable file sizes for offline use.
-
Performance Optimization:
- Handling the rendering of large datasets (e.g., dense urban areas) without performance drops in Unreal.
What I Need Help With:
-
Suggestions for Vector Tile Integration:
- Are there Unreal-compatible libraries or workflows for rendering vector tiles (like roads and borders) over Cesium terrain?
- Any examples or tutorials for rendering vector tile data procedurally in Unreal?
-
Best Way to Serve OSM Data Locally:
- Should I continue with TileServer GL, or are there better tools for generating and serving vector or raster tiles locally?
-
Metadata Display and Interaction:
- How can I use OSM or vector tile metadata (e.g., city names) to create UI popups or overlays in Unreal?
-
General Guidance:
- Any suggestions for workflows, tools, or approaches to achieve this goal.
- If you’ve worked on similar projects, what challenges should I watch out for?
Additional Context:
- The project does not require real-time data updates—static data from OSM is sufficient.
- I’m open to alternative solutions if they better achieve the desired results.
- Performance and scalability are critical since this will involve a large amount of geographic data.
If anyone has experience with similar setups or has suggestions on tools, libraries, or approaches, I’d love to hear from you. Thank you in advance for your time and help!