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;
这是非地形模式
下的样子:
为了在地形模式和非地形模式下在 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;