【发布时间】:2020-06-07 08:52:41
【问题描述】:
我正在创建一个应用程序,我们可以使用 MapControl 相机来改变观察方向(航向)、滚动角度、观察高度(俯仰)和视野(放大或缩小场景)。
当我开始缩小视角时,相机开始增加高度,当靠近地面或地图表面时,效果越明显。改变 Pitch 值时也会发生同样的情况,在某些角度相机也会增加高度。
我检查了相机位置值的高度值,MapControl.ActualCamera.Location.Position.Altitude 值始终相同。当相机只是“卡”在地面上时,这种效果会更加明显(尽管相机和地面之间总是有 20 米左右的距离。
这是我用来设置 MapCamera 高度、Pitch、FoV 的代码...
newCamera = new MapCamera(cameraVR.GroundGeopoint, cameraVR.Heading, cameraVR.Pitch, cameraVR.Roll, cameraVR.FoV);
MapScene mapScene = MapScene.CreateFromCamera(newCamera);
mapPosition.TrySetSceneAsync(mapScene, MapAnimationKind.None);
GroundGeopoint 是相机“粘”在地面上的位置,即使它总是悬浮在地面上方几米处。
【问题讨论】:
-
相机高度与地图缩放级别有关,只读,不能手动设置。
-
不能直接手动设置,但是创建一个MapCamera,用这个相机创建MapScene,可以设置一个高度。 (我已经更新了上面的文字)。
-
改变 Pitch 值也会改变相机高度,只是实现了更多的测试。