0
我正在嘗試縮放我的幾何圖形以適合放大到我的3D場景的真實世界。
我得到地圖的左上角和地圖的右上角。
然後,我使用Google地圖投影將它們轉換爲點,然後將這些點相互減去以獲得地圖的增量。
然後我使用該數字並將其除以包圍框deltaX的幾何圖形。
問題是代碼不會產生正確的縮放比例。
我放大地圖的次數越多,縮放得到的越小,縮小得越多,縮放越大。它應該是相反的。
我也不知道這是否實際上正確地縮放它,因爲它會在現實生活中。將幾何縮放到現實世界中
現在我這樣做:
var bounds = MAP3D.map.getBounds();
var projection = MAP3D.map.getProjection();
var x1Length = projection.fromLatLngToPoint(new google.maps.LatLng(
bounds.getNorthEast().lat(),
bounds.getSouthWest().lng()
));
var x2Length = projection.fromLatLngToPoint(new google.maps.LatLng(
bounds.getNorthEast().lat(),
bounds.getNorthEast().lng()
));
var ThreeUnitsX = Math.abs(x2Length.x - x1Length.x);
if (
MAP3D.ObjectManager.WellList[i].LOD.objects[0]
.object.geometry.boundingBox == null
) {
MAP3D.ObjectManager.WellList[i].LOD.objects[0]
.object.geometry.computeBoundingBox();
}
var boundingBox = MAP3D.ObjectManager.WellList[i].LOD.objects[0]
.object.geometry.boundingBox;
var deltaX = boundingBox.max.x - boundingBox.min.x;
var scaleX = ThreeUnitsX/deltaX;
me.WellList[i].LOD.scale.set(scaleX, scaleX, scaleX);
我想從#THREE.JS
IRC感謝chandlerp
幫了我很多。