我從http://workshop.chromeexperiments.com/globe/使用WebGL地球儀。如果點擊了地球的任何一點,我需要獲得該點的經度和緯度。這些參數將被傳遞給Google Maps for 2D地圖。從WebGL獲取地球的經度和緯度
我該怎麼做才能長久。和拉特。從webgl地球?
通過這個功能,我得到了雙擊點,並通過這一點,我發現了很長的時間。和拉特。但結果不正確。看起來點擊點不正確。
function onDoubleClick(event) {
event.preventDefault();
var vector = new THREE.Vector3(
(event.clientX/window.innerWidth) * 2 - 1,
-(event.clientY/window.innerHeight) * 2 + 1,
0.5
);
projector.unprojectVector(vector, camera);
var ray = new THREE.Ray(camera.position, vector.subSelf(camera.position).normalize());
var intersects = ray.intersectObject(globe3d);
if (intersects.length > 0) {
object = intersects[ 0 ];
console.log(object);
r = object.object.boundRadius;
x = object.point.x;
y = object.point.y;
z = object.point.z;
console.log(Math.sqrt(x * x + y * y + z * z));
lat = 90 - (Math.acos(y/r)) * 180/Math.PI;
lon = ((270 + (Math.atan2(x, z)) * 180/Math.PI) % 360) - 180;
console.log(lat);
console.log(lon);
}
}
獲取WebGL的地球在這裏https://dl.dropbox.com/u/48682822/globe.zip 您可以直接在Mozilla打開它,如果你在Chrome中打開它,因爲跨來源資源共享政策的地球表面圖像缺乏工作。它需要放在虛擬主機中。
但是,這個http://stackoverflow.com/questions/5674149/3d-coordinates-on-a-sphere-to-latitude-and-longitude不正確地處理這個問題。你試過了嗎? – orif
夥計們,請先看看http://workshop.chromeexperiments.com/globe和代碼。 – sandy