Cesium 中的标记被切割

markers in Cesium are cut

这是非地形模式

下的样子

:

为了在地形模式和非地形模式下在 Cesium 中添加标记,我正在这样做:

this.viewer = new Cesium.Viewer(this.container.nativeElement , {
       baseLayerPicker : true,
      selectedTerrainProviderViewModel: terrain[1]
    });
    this.viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider();

然后,当我输入地形 url(地形 url 是正确的:https://assets.agi.com/stk-terrain/world

 if(this.cesium.viewer.terrainProvider.hasOwnProperty("_url")) {
      this.cesiumHandler = new Cesium.ScreenSpaceEventHandler(this.cesium.viewer.scene.canvas);
      var pickedObject = this.cesium.viewer.scene.pick(event.position);
      let positionCartesian3 = this.cesium.viewer.scene.pickPosition(event.position);
      let positionCartographic = Cesium.Cartographic.fromCartesian(positionCartesian3);
      let lngDeg: number = Cesium.Math.toDegrees(positionCartographic.longitude);
      let latDeg: number = Cesium.Math.toDegrees(positionCartographic.latitude);
       position = [lngDeg, latDeg, positionCartographic.height];
    }
    else {
      this.cesiumHandler = new Cesium.ScreenSpaceEventHandler(this.cesium.container.nativeElement);
      let positionCartesian3 = this.cesium.viewer.camera.pickEllipsoid(event.position);
      let positionCartographic = Cesium.Cartographic.fromCartesian(positionCartesian3);
      let lngDeg: number = Cesium.Math.toDegrees(positionCartographic.longitude);
      let latDeg: number = Cesium.Math.toDegrees(positionCartographic.latitude);
      position= [lngDeg, latDeg];
    }

每当在地形上添加任何实体时,使用

        this.cesium.viewer.scene.globe.depthTestAgainstTerrain = true;