diff --git a/src/Core/Label.js b/src/Core/Label.js index 2b82731918..a80fa56281 100644 --- a/src/Core/Label.js +++ b/src/Core/Label.js @@ -205,8 +205,8 @@ class Label extends THREE.Object3D { this.updateMatrixWorld(); } - updateElevationFromLayer(layer) { - const elevation = Math.max(0, DEMUtils.getElevationValueAt(layer, this.coordinates, DEMUtils.FAST_READ_Z)); + updateElevationFromLayer(layer, nodes) { + const elevation = Math.max(0, DEMUtils.getElevationValueAt(layer, this.coordinates, DEMUtils.FAST_READ_Z, nodes)); if (elevation && elevation != this.coordinates.z) { this.coordinates.z = elevation; this.updateHorizonCullingPoint(); diff --git a/src/Layer/LabelLayer.js b/src/Layer/LabelLayer.js index cef290613f..5cf955d89d 100644 --- a/src/Layer/LabelLayer.js +++ b/src/Layer/LabelLayer.js @@ -175,7 +175,7 @@ class LabelLayer extends Layer { const elevationLayer = node.material.getElevationLayer(); if (elevationLayer && node.layerUpdateState[elevationLayer.id].canTryUpdate()) { node.children.forEach((c) => { - if (c.isLabel && c.needsAltitude && c.updateElevationFromLayer(this.parent)) { + if (c.isLabel && c.needsAltitude && c.updateElevationFromLayer(this.parent, [node])) { c.update3dPosition(context.view.referenceCrs); } }); @@ -214,7 +214,7 @@ class LabelLayer extends Layer { labels.forEach((label) => { if (label.needsAltitude) { - label.updateElevationFromLayer(this.parent); + label.updateElevationFromLayer(this.parent, [node]); } const present = node.children.find(l => l.isLabel && l.baseContent == label.baseContent);