Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何以编程方式创建MapModel3D?_C#_3d_Bing Maps_Windows 10 Universal_Uwp Maps - Fatal编程技术网

C# 如何以编程方式创建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

我正在从事一个使用Windows MapControl的UWP项目。 我想向地图添加三维模型。我知道如何从3mf文件中执行此操作。 但现在我想制作程序网格并将其添加到贴图中

我找到了关于如何在代码中创建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。'

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

有人知道怎么做吗?

试试这个:

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

啊,是的,当然,你是对的。我将modelpart而不是整个包分配为流。谢谢,它现在工作得很好!