2016-11-25 56 views
0

我正在处理一个UWP项目,我在倾斜的BingMaps地图上渲染3D内容。MapControl.ActualCamera似乎并不总是包含正确的数据

我使用directx在位于地图顶部的单独(部分透明)控件中呈现我的3D内容。所以它不是渲染在地图控件或其他地方,也不是其中的一部分,它完全是独立的。

我制作了将地理/ GPS坐标转换为我在Directx中使用的三维坐标系的方法,并使directx中的相机与地图的相机匹配。

但问题是,我从地图控制中检索到的相机数据并不总是正确的,或者至少不是最新的。

我使用这些属性:MapControl.ActualCamera.Location.Position,MapControl.Center.Location.Position和MapControl.ActualCamera.FieldOfView。

这些可能不是最好的获取实际当前的相机数据? 如果是这样,我应该使用哪些?

回答

0

相机对象当前未定义为允许您完全复制所用的完整投影矩阵,因此我认为您不能渲染完全匹配的3D内容。空中和道路模式使用不同的投影(墨卡托平面与地球仪),并且无法从中心位置属性重建摄像机查看矢量,而无需知道地图投影和地形表面值。

+0

我其实已经匹配了。我们总是使用平面地图(不知道它叫做什么),并且使用试验和错误我发现了什么是使用投影。问题是我得到的数据有时是过时的(例如,我移动相机,即使在相机停止移动后,我得到的数据仍然来自移动过程中的某处,而不是当前位置)。移动摄像机会导致稍微的延迟(有时),有时会造成偏移。 – Stef