我使用的是从全球的WebGL http://workshop.chromeexperiments.com/globe/ 。 如果点击地球上任何地点,我需要得到该点的经度和纬度。 这些参数将被传递到谷歌地图的二维地图。
我怎样才能长。 和纬度。 从全球的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中打开它适用于由于跨来源资源共享的地球表面图像缺政策。 它需要放在一个虚拟主机。