1. A concise explanation of the problem you're experiencing.
I'm using a czml to display a set of points in cartographic degrees along a gltf georeferenced model. The model appears to be rendered correctly but the vertices do not exactly match the reference points. This is very noticeable when zooming in. I created a dummy example to illustrate the problem. The mismatch between the model vertices and the reference points can be seen in the attached screenshots. With other models I have been testing the model is also rotated with respect to the reference points.
![model_and_points.png](https://groups.google.com/group/cesium-dev/attach/78e17a7b8ceba/model_and_points.png?part=0.2&view=1)
![model_and_points_zoomed_in.png](https://groups.google.com/group/cesium-dev/attach/78e17a7b8ceba/model_and_points_zoomed_in.png?part=0.3&view=1)
The model data is in utm zone 10 coordinate system (I made it by transforming the wgs84 reference points to utm using proj4). I'm using a node transform to convert the z-up data to y-up as required in the gltf spec. In Cesium I'm locating the model on the globe with the position property of the czml entity that references my gltf model, I use the centroid of the model in WGS84 coordinates as the cartographic degrees position.
What do I have to do to make the model and the points match exactly?
Is there a preferred coordinate system I should use for this scenario?
Is there any way to use wgs84 directly in the gltf data?
2. A minimal code example. If you've found a bug, this helps us reproduce and repair it.
var czml = [{
"id" : "document",
"name" : "CZML Model",
"version" : "1.0"
},
{
"id":"Point 1",
"name":"Point A",
"position": {
"cartographicDegrees": [-122.37266385,37.82411625,10]
},
"point": {
"outlineWidth":1,
"pixelSize":5
}
},
{
"id":"Point 2",
"name":"Point B",
"position": {
"cartographicDegrees": [-122.3709471,37.8215564,10]
},
"point": {
"outlineWidth":1,
"pixelSize":5
}
},
{
"id":"Point 3",
"name":"Point C",
"position": {
"cartographicDegrees": [-122.36826735,37.82268672,10]
},
"point": {
"outlineWidth":1,
"pixelSize":5
}
},
{
"id" : "Model",
"name" : "Gltf model",
"position" : {
"cartographicDegrees": [-122.3704656010898475, 37.8228363356576978, 10.0000000000000000]
},
"model": {
"gltf" : "triangle.gltf",
"scale" : 1,
"minimumPixelSize": 1,
"nodeTransformations": {
"root": {
"rotation": {
"unitQuaternion":[ 0, 0, 0, 1 ]
}
}
}
}
}];
var viewer = new Cesium.Viewer('cesiumContainer', {
shouldAnimate : true
});
var dataSourcePromise = viewer.dataSources.add(Cesium.CzmlDataSource.load(czml));
dataSourcePromise.then(function(dataSource){
viewer.trackedEntity = dataSource.entities.getById('Point 2');
}).otherwise(function(error){
window.alert(error);
});
The model used for the example is attached (triangle.gltf)
3. Context. Why do you need to do this? We might know a better way to accomplish your goal.
I want to display a georeferenced gltf model along some reference points I have in WGS84 coordinates.
4. The Cesium version you're using, your operating system and browser.
Cesium 1.67
Ubuntu 18.04
Google Chrome Version 80.0.3987.106 (Official Build) (64-bit)