2016-11-25 69 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