Trying to map coordinates with latitude and longitude onto a 3d sphere.
I've tried three different sets of equations from the internet and none of them work. Does anyone know how to do it.
These are the ones I tried that didn't work.
var phi = (90-lat)*(Math.PI/180),
theta = (lon+180)*(Math.PI/180),
x = -((radius) * Math.sin(phi)*Math.cos(theta)),
z = ((radius) * Math.sin(phi)*Math.sin(theta)),
y = ((radius) * Math.cos(phi));
return new THREE.Vector3(x,y,z);
var height = 600;
var phi = (lat)*Math.PI/180;
var theta = (lon-180)*Math.PI/180;
var x = -(radius+height) * Math.cos(phi) * Math.cos(theta);
var y = (radius+height) * Math.sin(phi);
var z = (radius+height) * Math.cos(phi) * Math.sin(theta);
return new THREE.Vector3(x,y,z);
var x = Math.cos(lon) * Math.sin(lat),
y = Math.sin(lon) * Math.sin(lat),
z = Math.cos(lat);
return new THREE.Vector3(x,y,z);
Ah actually this one definitely works!
var phi = (90-lat)*(Math.PI/180),
theta = (lon+180)*(Math.PI/180),
x = -((radius) * Math.sin(phi)*Math.cos(theta)),
z = ((radius) * Math.sin(phi)*Math.sin(theta)),
y = ((radius) * Math.cos(phi));
return new THREE.Vector3(x,y,z);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With