Hello again @Omar and sorry if I necropost this.
I was working on it, and ad some progress like the following Sandcastle
I used a different approach since The data I have is a bit different, but there is something I am missing.
var getEdges = function (area){
var origin = new Cesium.Cartesian2(area.ll.longitude, area.ll.latitude);
var xAxis = new Cesium.Cartesian2(area.dir.longitude - area.ll.longitude, area.dir.latitude - area.ll.latitude);
var yAxis = new Cesium.Cartesian2(
Math.cos(Math.PI /2) * xAxis.x - Math.sin(Math.PI /2) * xAxis.y,
Math.sin(Math.PI /2) * xAxis.x + Math.cos(Math.PI /2) * xAxis.y
);
var originPoint = new Cesium.Cartesian3.fromDegrees(origin.x, origin.y, 0);
var xVector = new Cesium.Cartesian3.fromDegrees(origin.x + xAxis.x, origin.y + xAxis.y, 0);
var yVector = new Cesium.Cartesian3.fromDegrees(origin.x + yAxis.x, origin.y + yAxis.y, 0);
var lrDir = Cesium.Cartesian3.normalize(Cesium.Cartesian3.subtract(xVector, originPoint, new Cesium.Cartesian3()), new Cesium.Cartesian3());
var lrSum = Cesium.Cartesian3.multiplyByScalar(lrDir, area.lllr, new Cesium.Cartesian3());
var lowerRight = Cesium.Cartesian3.add(originPoint, lrSum, new Cesium.Cartesian3());
var ulDir = Cesium.Cartesian3.normalize(Cesium.Cartesian3.subtract(yVector, originPoint, new Cesium.Cartesian3()), new Cesium.Cartesian3());
var ulSum = Cesium.Cartesian3.multiplyByScalar(ulDir, area.llul, new Cesium.Cartesian3());
var upperLeft = Cesium.Cartesian3.add(originPoint, ulSum, new Cesium.Cartesian3());
var upperRight = Cesium.Cartesian3.add(originPoint, lrSum, new Cesium.Cartesian3());
Cesium.Cartesian3.add(upperRight, ulSum, upperRight);
return [originPoint, lowerRight, upperRight, upperLeft];
};
``
In this function, if I take my Cartesian2 points, they are correct, they are correct (origin, xAxis and yAxis) are forming a 90degree angle
but when I switch to a Cartesian3, they are not doing 90degree, but slightly less>
Do you know where the problem might come from ?