SpatialAnchorTransferManager.TryExportAnchorsAsync Metodo

Definizione

Esporta ancoraggi spaziali in un flusso, che può essere importato in un altro dispositivo. Ciò consente a entrambi i dispositivi di ragionare sulle stesse posizioni nell'ambiente degli utenti.

public:
 static IAsyncOperation<bool> ^ TryExportAnchorsAsync(IIterable<IKeyValuePair<Platform::String ^, SpatialAnchor ^> ^> ^ anchors, IOutputStream ^ stream);
/// [Windows.Foundation.Metadata.RemoteAsync]
 static IAsyncOperation<bool> TryExportAnchorsAsync(IIterable<IKeyValuePair<winrt::hstring, SpatialAnchor const&>> const& anchors, IOutputStream const& stream);
/// [Windows.Foundation.Metadata.RemoteAsync]
/// [Windows.Foundation.Metadata.Deprecated("Use SpatialEntityStore instead of SpatialAnchorTransferManager. For more info, see MSDN.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 262144, "Windows.Foundation.UniversalApiContract")]
 static IAsyncOperation<bool> TryExportAnchorsAsync(IIterable<IKeyValuePair<winrt::hstring, SpatialAnchor const&>> const& anchors, IOutputStream const& stream);
[Windows.Foundation.Metadata.RemoteAsync]
public static IAsyncOperation<bool> TryExportAnchorsAsync(IEnumerable<KeyValuePair<string,SpatialAnchor>> anchors, IOutputStream stream);
[Windows.Foundation.Metadata.RemoteAsync]
[Windows.Foundation.Metadata.Deprecated("Use SpatialEntityStore instead of SpatialAnchorTransferManager. For more info, see MSDN.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 262144, "Windows.Foundation.UniversalApiContract")]
public static IAsyncOperation<bool> TryExportAnchorsAsync(IEnumerable<KeyValuePair<string,SpatialAnchor>> anchors, IOutputStream stream);
function tryExportAnchorsAsync(anchors, stream)
Public Shared Function TryExportAnchorsAsync (anchors As IEnumerable(Of KeyValuePair(Of String, SpatialAnchor)), stream As IOutputStream) As IAsyncOperation(Of Boolean)

Parametri

anchors

IIterable<IKeyValuePair<String,SpatialAnchor>>

IEnumerable<KeyValuePair<String,SpatialAnchor>>

IIterable<IKeyValuePair<Platform::String,SpatialAnchor>>

IIterable<IKeyValuePair<winrt::hstring,SpatialAnchor>>

Raccolta di ancoraggi da esportare, ognuna identificata da una chiave stringa specificata dall'app.

stream
IOutputStream

Flusso in cui esportare ancoraggi.

Restituisce

Operazione che attiva una volta completata l'esportazione.

Attributi

Requisiti Windows

Funzionalità dell'app
spatialPerception

Commenti

È responsabilità dell'app ottenere i dati nel flusso dell'altro dispositivo tramite il proprio canale di rete.

Questo metodo restituisce un risultato di true se l'esportazione ha avuto esito positivo. L'esportazione può non riuscire se il sistema di comprensione spaziale si verifica un timeout durante l'esportazione.

Nota: Se si usa JavaScript, non è possibile creare direttamente il parametro ancoraggi , perché è di tipo IIterable<IKeyValuePair<Platform::String^, Windows::P erception::Spatial::SpatialAnchor^>>. Creare invece un componente helper WinRT nativo con una funzione CreateMap :

#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.Perception.Spatial.h>

using namespace winrt;
using namespace Windows::Foundation::Collections;
using namespace Windows::Perception::Spatial;

IMap<winrt::hstring, SpatialAnchor> CreateMap()
{
    return winrt::single_threaded_map<winrt::hstring, SpatialAnchor>();
}
#include "pch.h"
#include "SpatialAnchorHelper.h"

using namespace SpatialHelper;
using namespace Platform;

Windows::Foundation::Collections::IMap<Platform::String^, Windows::Perception::Spatial::SpatialAnchor^>^ SpatialAnchorHelper::CreateMap()
{
    return ref new Platform::Collections::Map<Platform::String^, Windows::Perception::Spatial::SpatialAnchor^>();
}

È ora possibile popolare l'insieme ancoraggi in JavaScript e passarlo al metodo TryExportAnchorsAsync. Nell'esempio di codice seguente viene illustrato come usare la classe SpatialAnchorHelper per popolare l'insieme ancoraggi.

waitForPositionalTracking(function () {
	var spatialAnchor = Windows.Perception.Spatial.SpatialAnchor.tryCreateRelativeTo(stationaryRef.coordinateSystem);

	if (isLocatableRelativeToUser(spatialAnchor)) {
		var map = SpatialHelper.SpatialAnchorHelper.createMap();
		map.insert("test", spatialAnchor);

		var stream = Windows.Storage.Streams.InMemoryRandomAccessStream();

		console.log("Exporting spatial anchor");
		var exportWatch = new Stopwatch();
		Windows.Perception.Spatial.SpatialAnchorTransferManager.tryExportAnchorsAsync(map.getView(), stream.getOutputStreamAt(0)).then(
            function (succeeded) {
                if (succeeded) {
                    console.log("Exported " + stream.size + " bytes to stream.  Elapsed time: " + exportWatch.stop() + " seconds");
...

Si applica a