C# 如何以编程方式创建MapModel3D?
我正在从事一个使用Windows MapControl的UWP项目。 我想向地图添加三维模型。我知道如何从3mf文件中执行此操作。 但现在我想制作程序网格并将其添加到贴图中 我找到了关于如何在代码中创建3mf文件的文档: 我按照此文档创建了一个Printing3D3MFPackage 但我尝试从这个3mf包创建MapModel3D,如下所示:C# 如何以编程方式创建MapModel3D?,c#,3d,bing-maps,windows-10-universal,uwp-maps,C#,3d,Bing Maps,Windows 10 Universal,Uwp Maps,我正在从事一个使用Windows MapControl的UWP项目。 我想向地图添加三维模型。我知道如何从3mf文件中执行此操作。 但现在我想制作程序网格并将其添加到贴图中 我找到了关于如何在代码中创建3mf文件的文档: 我按照此文档创建了一个Printing3D3MFPackage 但我尝试从这个3mf包创建MapModel3D,如下所示: //package is of type Printing3D3MFPackage var streamReference = RandomAccess
//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。'
所以我猜这些流是不兼容的
有人知道怎么做吗?试试这个:
…
await package.SaveModelToPackageAsync(model);
var packageStream = await localPackage.SaveAsync();
var streamReference = RandomAccessStreamReference.CreateFromStream(packageStream );
var myModel = await MapModel3D.CreateFrom3MFAsync(streamReference, MapModel3DShadingOption.Smooth);
啊,是的,当然,你是对的。我将modelpart而不是整个包分配为流。谢谢,它现在工作得很好!