将绝对位置放在Three.js,所有对象都在0,0,0位置

Put absolute position in Three.js, all objects in 0,0,0 position

请把这个问题作为一个重复问题,因为这些解决方案对我不起作用,而且对 Three.js 来说确实是新问题。

我在场景中有几个物体,http://www.subirimagenes.com/imagen-captura-9426000.html它是一张地图,但每个区域都是一个物体,并且根据它们的位置在平面上。但是现在我想将所有这些对象放在一个坐标中,例如 0,0,0 并且它们都在一起。但是如果我把 municipios[i].position.set (0,0,0) 放在相同的位置。当我这样做时它在笛卡尔平面中的实际位置?

这就是我的大致代码。

                            for(i in $scope.datosMunicipio){


                            Geometria[i]=new THREE.Geometry();
                            array_extrude[i]=new Array();
                              for (var a  in  vector_lat[i]){

                                 if(a!=0){
                                    if(vector_lat[i][a]==vector_lat[i][a-1]) {
                                        continue;
                                    }
                                 }
                                    Vector[i]=new THREE.Vector3((vector_long[i][a]+75.5)*10,((vector_lat[i][a])-5.5)*10,0);
                                    Geometria[i].vertices.push(Vector[i]);  
                                    array_extrude[i].push(Vector[i]);

                                }

                            forma_figura[i]=new THREE.Shape(array_extrude[i]);

                            extrude_geometria[i]=new THREE.ExtrudeGeometry(forma_figura[i],datos_extrusion); // lento
                            materialFront[i] = new THREE.MeshBasicMaterial( { color: "#FF0000",name:$scope.datosMunicipio[i].nombre} );

                            municipios[i] = new THREE.Mesh( extrude_geometria[i], materialFront[i] );

收费数据数据库,municipios[i]在每个位置都有一个区域。坐标是数据 google 地图,分别是经度和纬度,在这些数字的情况下,范围是 5.5 ... 和 -75 ..... 每个区域都有自己的 0,0,0 就像我做的那样所有区域都在同一个 0,0,0?

显然您的所有几何图形都已共享相同的坐标系。它们从 0,0,0 开始,所以将它们移动到那里只会发送它们 "home."

如果您调用 extrude_geometria[i].computeBoundingBox(),这将设置几何的范围值。要让所有几何体移动到重合位置,请将每个几何体设置为边界框的中心。此操作类似于几何.center()方法。

municipios[i].geometry.computeBoundingBox();
var offset = municipios[i].geometry.boundingBox.center().negate();
municipios[i].position.copy(offset);