【问题标题】:MapControl.ActualCamera doesn't seem to always contain correct dataMapControl.ActualCamera 似乎并不总是包含正确的数据
【发布时间】:2016-11-30 03:03:03
【问题描述】:

我正在开发一个 UWP 项目,我在倾斜的 BingMaps 地图上渲染 3D 内容。

我在位于地图顶部的单独(部分透明)控件中使用 directx 渲染我的 3d 内容。所以它不是在 mapcontrol 内或作为 mapcontrol 或任何东西的一部分呈现,它是完全独立的。

我制作了将地理/gps 坐标传输到我在 Directx 中使用的 3d 坐标系的方法,并让 Directx 中的相机与地图的相机相匹配。

但问题是,我从 mapcontrol 检索到的相机数据似乎并不总是正确的,或者至少不是最新的。

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

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

【问题讨论】:

    标签: c# uwp bing-maps uwp-maps


    【解决方案1】:

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

    【讨论】:

    • 其实我已经匹配好了。我们总是使用平面地图(不知道它叫什么),通过反复试验,我发现了使用的是什么投影。问题是我得到的数据有时是过时的(例如,我移动了相机,即使在相机停止移动之后,我得到的数据仍然来自移动过程中的某个地方,而不是当前位置)。这会在移动相机时(有时)导致轻微的延迟,有时还会导致偏移。
    猜你喜欢
    • 1970-01-01
    • 2012-02-27
    • 2017-02-10
    • 2012-09-03
    • 2023-04-04
    • 2011-11-15
    • 2014-10-06
    • 2017-12-10
    • 2019-11-19
    相关资源
    最近更新 更多