Мне нужно определить местоположение элемента html на основе местоположения объекта Cesium. Я использовал положение мыши (Cesium.Cartesian3.clone(movement.endPosition)
), которое находится в координатах окна, в качестве теста, и оно работает. Поэтому мне нужно получить позицию объекта, преобразовать ее в координаты WGS84, преобразовать их в координаты окна и использовать их для element.style.left = window_coord.x
и element.style.top = window_coord.y
.
Итак, я получаю entity.position и значения x, y и z правильные. Однако, когда я хочу преобразовать их в координаты WGS84, что-то идет не так, и я получаю NaN для широты, долготы и высоты.
Вот варианты, которые я пробовал, оба приводят к NaN для широты, долготы и высоты:
var carto = Cesium.Ellipsoid.WGS84.cartesianToCartographic(entity.position);
or
var carto = Cesium.Cartographic.fromCartesian(entity.position);
or
var ellipsoid = viewer.scene.globe.ellipsoid;
var cartesian = viewer.camera.pickEllipsoid(entity.position, ellipsoid);
var carto = ellipsoid.cartesianToCartographic(cartesian);
var entity_pos = Cesium.SceneTransforms.wgs84ToWindowCoordinates(scene, carto);
element.style.left = entity_pos.x;
element.style.top = entity_pos.y;
Моя другая идея заключалась в ручном вычислении координат WGS84, но это было бы таким глупым обходным путем. Любые идеи о том, как я мог бы сделать это, не влияя на пользовательский опыт.