如何以编程方式创建MapModel3D?

时间:2018-06-19 09:36:54

标签: c# 3d bing-maps windows-10-universal uwp-maps

我正在使用Windows MapControl的UWP项目。 我想在地图上添加3d模型。我知道如何从3mf文件中执行此操作。 但是现在我想制作程序网格并将它们添加到地图中。

我找到了有关如何在代码中创建3mf文件的文档: https://docs.microsoft.com/en-us/windows/uwp/devices-sensors/generate-3mf

我按照此文档创建了Printing3D3MFPackage。

然后我尝试从这个3mf包中创建一个MapModel3D,如下所示:

//package is of type Printing3D3MFPackage
var streamReference = RandomAccessStreamReference.CreateFromStream(package.ModelPart);
var myModel = await MapModel3D.CreateFrom3MFAsync(streamReference, MapModel3DShadingOption.Smooth);

我得到了这个例外:

  

System.Runtime.InteropServices.COMException:'未指定错误

     

无法从3MF流创建MapModel3D。'

所以我猜这些流是不兼容的。

有谁知道怎么做?

1 个答案:

答案 0 :(得分:2)

尝试以下方法:

…
await package.SaveModelToPackageAsync(model);
var packageStream = await localPackage.SaveAsync();
var streamReference = RandomAccessStreamReference.CreateFromStream(packageStream );
var myModel = await MapModel3D.CreateFrom3MFAsync(streamReference, MapModel3DShadingOption.Smooth);