UWP映射,添加3D对象

时间:2016-07-21 12:35:55

标签: uwp-maps

我想在Windows 10 UWP地图控件中添加3D对象。

此对象将是“具有高度的多边形”,例如房子的简单表示 - 长方体或立方体。

插图图片:

Illustration

我知道我可以添加Xaml控件(并在其中包含3D对象,例如Cube),但此立方体不是“地图对象”,仅固定到某个Lat / Lon。

知道如何实现这个吗?

1 个答案:

答案 0 :(得分:3)

微软已添加MapElement3D in Windows 10 Insider Preview v10.0.16257.0. - 这是瀑布创建者的更新。它允许您添加对象,转动它们,控制它们的大小和方向。你也可以让它们移动!

实施例

Example

操作方法

  

表示MapControl上显示的3D元素。

它的用法似乎与其他MapElements非常相似,例如MapIconsMapBillboards

cols_only()

谨防两个未记录的问题:

  • 尝试将相同的3DMapElement添加到两个不同的MapControl将导致System.AccessViolationException。如果缓存3D模型但不缓存带有地图控件的页面,则会发生这种情况。
  

HResult = -2147467261 Message =尝试读取或写入受保护   记忆。这通常表明其他内存已损坏。

  • 尝试从非Ui线程调用map3dSphereStreamReference = RandomAccessStreamReference.CreateFromUri (new Uri("ms-appx:///Assets/trainengine.3mf")); var myModel = await MapModel3D.CreateFrom3MFAsync(map3dSphereStreamReference, MapModel3DShadingOption.Smooth); var my3DElement = new MapElement3D(); my3DElement.Location = myMap.Center; my3DElement.Model = myModel; myMap.MapElements.Add(my3DElement); 将导致崩溃。必须从UI线程调用此方法。