Hi everyone,
The CesiumJS team is exploring how we might better support different coordinate reference systems (CRSs), vertical datums, and local coordinate systems, and we’d like to better understand your needs and current workflows.
There are several existing feature requests that touch different parts of this problem:
- Different projections
- Add support for EGM96 / EGM2008 / MSL lookup
- Support many imagery layers with transformations and terrain
Rather than looking at these only as individual features, we’re interested in understanding the broader workflows behind them.
Some examples of capabilities we have in mind include:
-
Reprojecting data for 2D rendering
-
Working with different vertical reference datums, such as Mean Sea Level or a regional height datum rather than height relative to the WGS84 ellipsoid
-
Displaying coordinates and measurements in a particular CRS, even when the underlying scene uses CesiumJS’s global coordinate system
-
Working directly with local/project coordinates, such as for surveying, CAD, BIM, or other engineering data where the data’s own coordinate system may be meaningful to users
-
Combining datasets from different coordinate systems
These are examples, not a proposed scope or API, each of which could ultimately require very different solutions.
We also want to be transparent that we’re in the exploration stage and have not committed to implementing these capabilities in CesiumJS. Before deciding, we want to better understand the problems you are actually trying to solve so we can balance feature requests with the overall maintainability and scope of CesiumJS
If you work with CRSs, vertical datums, or local coordinate systems in a CesiumJS application, we’d especially like to hear:
What is your use case? What coordinate systems or datums are you working with, and what do you need to accomplish?
Where do you encounter friction in you workflow? Is the challenge getting data into CesiumJS, rendering it correctly, working with coordinates at runtime, presenting coordinates or measurements to users, or something else?
How are you solving it today? Are you preprocessing data, using PROJ or another geospatial library, converting through a backend service, maintaining your own transforms, or using another visualization tool?
How important is better support in CesiumJS? Is this mostly a convenience, a significant source of complexity, or something currently blocking a workflow?
We’re also interested in cases that don’t fit neatly into the examples above. Part of the goal here is to understand whether there are common workflows we could support more cohesively, rather than addressing each coordinate-system problem independently.
Thanks!