@kimap/indoor-positioning-sdk-vue2 5.0.2 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kimap/indoor-positioning-sdk-vue2",
3
- "version": "5.0.2",
3
+ "version": "5.1.0",
4
4
  "description": "Vue2自包含室内定位SDK - 完全兼容Webpack3+Babel6 | Vue2 Self-Contained Indoor Positioning SDK",
5
5
  "main": "index.js",
6
6
  "files": [
@@ -2079,37 +2079,36 @@
2079
2079
  function(obj) {
2080
2080
  console.log('🔧 [家具模型加载] 开始处理:', furniture.type);
2081
2081
 
2082
- // ========== 修复1: 分别计算X、Y、Z轴的缩放因子 ==========
2083
2082
  // 计算模型的边界框
2084
2083
  var box = new THREE.Box3().setFromObject(obj);
2085
2084
  var size = new THREE.Vector3();
2086
2085
  box.getSize(size);
2087
2086
 
2088
2087
  // 目标尺寸(米)
2089
- var targetWidth = furniture.targetSize.width;
2090
- var targetDepth = furniture.targetSize.depth;
2088
+ // 兼容旧数据:targetSize 可能缺失或单位异常,避免Y轴被异常拉伸
2089
+ var targetWidth = (furniture.targetSize && typeof furniture.targetSize.width === 'number') ? furniture.targetSize.width : size.x;
2090
+ var targetHeight = (furniture.targetSize && typeof furniture.targetSize.height === 'number') ? furniture.targetSize.height : size.y;
2091
+ var targetDepth = (furniture.targetSize && typeof furniture.targetSize.depth === 'number') ? furniture.targetSize.depth : size.z;
2091
2092
 
2092
- // 计算每个轴的缩放因子
2093
+ // 预览对齐策略:X/Z 按目标宽深分别缩放,Y 轴跟随 X 轴缩放(不使用 targetHeight)
2094
+ // 说明:绘制平台预览(src/utils/model3DLoader.ts)中 Y 轴使用与 X 轴一致的缩放,
2095
+ // 若 SDK 按 targetHeight 独立缩放 Y,会出现“导出后高度被拉伸/压扁”的视觉差异。
2093
2096
  var scaleX = size.x > 0 ? targetWidth / size.x : 1;
2094
2097
  var scaleZ = size.z > 0 ? targetDepth / size.z : 1;
2095
-
2096
- // 与绘制平台保持一致:使用水平面(X/Z)缩放作为统一基准。
2097
- // 避免Y轴受源模型包围盒差异影响,导致高度异常拉伸。
2098
- var uniformScale = (scaleX + scaleZ) / 2;
2098
+ var scaleY = scaleX;
2099
2099
 
2100
2100
  // 用户缩放兜底(兼容 scale 缺失或字段不完整)
2101
2101
  var userScaleX = (furniture.scale && typeof furniture.scale.x === 'number') ? furniture.scale.x : 1;
2102
- var userScaleY = (furniture.scale && typeof furniture.scale.y === 'number') ? furniture.scale.y : userScaleX;
2103
- var userScaleZ = (furniture.scale && typeof furniture.scale.z === 'number') ? furniture.scale.z : userScaleX;
2102
+ var userScaleY = (furniture.scale && typeof furniture.scale.y === 'number') ? furniture.scale.y : 1;
2103
+ var userScaleZ = (furniture.scale && typeof furniture.scale.z === 'number') ? furniture.scale.z : 1;
2104
2104
 
2105
- var finalScaleX = uniformScale * userScaleX;
2106
- var finalScaleY = uniformScale * userScaleY;
2107
- var finalScaleZ = uniformScale * userScaleZ;
2105
+ var finalScaleX = scaleX * userScaleX;
2106
+ var finalScaleY = scaleY * userScaleY;
2107
+ var finalScaleZ = scaleZ * userScaleZ;
2108
2108
 
2109
2109
  console.log('🔧 [家具缩放] 原始模型尺寸:', { x: size.x.toFixed(4), y: size.y.toFixed(4), z: size.z.toFixed(4) });
2110
- console.log('🔧 [家具缩放] 目标尺寸:', { width: targetWidth.toFixed(4), depth: targetDepth.toFixed(4) });
2111
- console.log('🔧 [家具缩放] 缩放因子:', { scaleX: scaleX.toFixed(4), scaleZ: scaleZ.toFixed(4) });
2112
- console.log('🔧 [家具缩放] uniformScale(平均X和Z):', uniformScale.toFixed(4));
2110
+ console.log('🔧 [家具缩放] 目标尺寸:', { width: targetWidth.toFixed(4), height: targetHeight.toFixed(4), depth: targetDepth.toFixed(4) });
2111
+ console.log('🔧 [家具缩放] 轴向缩放因子:', { scaleX: scaleX.toFixed(4), scaleY: scaleY.toFixed(4), scaleZ: scaleZ.toFixed(4) });
2113
2112
  console.log('🔧 [家具缩放] 用户缩放:', { x: userScaleX, y: userScaleY, z: userScaleZ });
2114
2113
  console.log('🔧 [家具缩放] 最终缩放:', {
2115
2114
  x: finalScaleX.toFixed(4),
@@ -897,14 +897,17 @@ KimapSDK.prototype._loadSingleFurniture = function(furniture, serverUrl) {
897
897
  box.getSize(size);
898
898
 
899
899
  // 目标尺寸(米)
900
- var targetWidth = furniture.targetSize.width;
901
- var targetHeight = furniture.targetSize.height;
902
- var targetDepth = furniture.targetSize.depth;
903
-
904
- // 与预览保持一致:X/Y/Z 独立按目标尺寸缩放
900
+ // 兼容旧数据:targetSize 可能缺失或单位异常,避免Y轴被异常拉伸
901
+ var targetWidth = (furniture.targetSize && typeof furniture.targetSize.width === 'number') ? furniture.targetSize.width : size.x;
902
+ var targetHeight = (furniture.targetSize && typeof furniture.targetSize.height === 'number') ? furniture.targetSize.height : size.y;
903
+ var targetDepth = (furniture.targetSize && typeof furniture.targetSize.depth === 'number') ? furniture.targetSize.depth : size.z;
904
+
905
+ // 预览对齐策略:X/Z 按目标宽深分别缩放,Y 轴跟随 X 轴缩放(不使用 targetHeight)
906
+ // 说明:绘制平台预览(src/utils/model3DLoader.ts)中 Y 轴使用与 X 轴一致的缩放,
907
+ // 若 SDK 按 targetHeight 独立缩放 Y,会出现“导出后高度被拉伸/压扁”的视觉差异。
905
908
  var scaleX = size.x > 0 ? targetWidth / size.x : 1;
906
- var scaleY = size.y > 0 ? targetHeight / size.y : 1;
907
909
  var scaleZ = size.z > 0 ? targetDepth / size.z : 1;
910
+ var scaleY = scaleX;
908
911
 
909
912
  // 用户缩放兜底(兼容 scale 缺失或字段不完整)
910
913
  var userScaleX = (furniture.scale && typeof furniture.scale.x === 'number') ? furniture.scale.x : 1;