Well this was way more difficult then I thought. Took inspiration from this post: https://groups.google.com/forum/#!msg/cesium-dev/qt7yeItj0cg/GokrqRd5DwAJ
This code creates a point with same screen pixel size as myEllipseEntity:
//compute positions
var ellipsePositions = Cesium.EllipseGeometryLibrary.computeEllipsePositions({
semiMinorAxis: myEllipseEntity.ellipse.semiMinorAxis.getValue(),
semiMajorAxis: myEllipseEntity.ellipse.semiMajorAxis.getValue(),
rotation: 0,
center: myEllipseEntity.position.getValue(),
granularity: Cesium.Math.RADIANS_PER_DEGREE
}, false, true);
var positionsArray = Cesium.Cartesian3.unpackArray(ellipsePositions.outerPositions);
//compute bounding sphere
var boundingSphere = Cesium.BoundingSphere.fromPoints(positionsArray);
//compute size of each pixel in meters
var pixelSize = viewer.camera.getPixelSize(boundingSphere, viewer.scene.drawingBufferWidth, viewer.scene.drawingBufferHeight);
//compute number of pixels that original ellipse appears to be
var sizeInPixels = (2 * boundingSphere.radius) / pixelSize;
var newPoint = t._viewer.entities.add({
point: {
pixelSize: sizeInPixels,
color: Cesium.Color.GREEN,
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND
}
}); //I set the position later