# Degrees from cartesian 3

**URL:** <https://community.cesium.com/t/degrees-from-cartesian-3/3566>\
**Category:** CesiumJS\
**Created:** [January 15, 2016, 9:28am UTC](https://community.cesium.com/t/degrees-from-cartesian-3/3566 "2016-01-15T09:28:23Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gianmaria\_Dalla\_Torr](https://avatars.discourse-cdn.com/v4/letter/g/e9bcb4/32.png) [@Gianmaria\_Dalla\_Torr](https://community.cesium.com/u/Gianmaria_Dalla_Torr)\
**Post date:** [January 15, 2016, 9:28am UTC](https://community.cesium.com/t/degrees-from-cartesian-3/3566/1 "2016-01-15T09:28:23Z")

</div>

Hi,

after loading kml file with some coordinates inside cesium, i notice that cesium makes a conversion of my array of coordinates in degrees into an array of cartesian 3. I need return to an array of degrees through a reverse formula or a method.

At the moment i use 3 conversions with significant rounding error.

My initial coordinates( **degrees** ) inside kml:

Lon: 61.296382224724795

Lat: 35.628536117000692

After conversion of cesium( **cartesian 3** ):

X: 2494939.8298499687

Y: 4552677.081444226

Z: 3692848.606359371

After conversion on cesium by this code( **cartographic radiant** ):

var positions = entity.polygon.hierarchy.\_value.positions;

var cartographicPositions = Cesium.Ellipsoid.WGS84.cartesianArrayToCartographicArray(positions);

Lon: 1.0694776254979663

Lat: 0.6214636648559897

After conversion on cesium by this code( **degrees** ):

var lonDegree = cartographicPositions[0].longitude \* 180 / Math.PI;

var latDegree = cartographicPositions[0].latitude \* 180 / Math.PI;

Lon: 61.2765542247063 //after 3 conversion the error is too large

Lat: 35.60724511698087 //after 3 conversion the error is too large

Any idea, method or inverse formula?

Thanks,

Gianmaria

---

<div class="post-metadata">

**Author:** ![nkiabee](https://avatars.discourse-cdn.com/v4/letter/n/a183cd/32.png) [@nkiabee](https://community.cesium.com/u/nkiabee)\
**Post date:** [January 16, 2016, 2:19am UTC](https://community.cesium.com/t/degrees-from-cartesian-3/3566/2 "2016-01-16T02:19:52Z")

</div>

You can try this:

var pos = Cesium.Cartesian3.fromDegrees(61.296382224724795,35.628536117000692);  
var carto = Cesium.Ellipsoid.WGS84.cartesianToCartographic(pos);  
var lon = Cesium.Math.toDegrees(carto.longitude);  
var lat = Cesium.Math.toDegrees(carto.latitude);

---

<div class="post-metadata">

**Author:** ![Gianmaria\_Dalla\_Torr](https://avatars.discourse-cdn.com/v4/letter/g/e9bcb4/32.png) [@Gianmaria\_Dalla\_Torr](https://community.cesium.com/u/Gianmaria_Dalla_Torr)\
**Post date:** [January 18, 2016, 10:05am UTC](https://community.cesium.com/t/degrees-from-cartesian-3/3566/3 "2016-01-18T10:05:33Z")

</div>

I thought it was very similar to my own solution instead seems to work very well!

Thanks

Gianmaria
