SpatialAnchorTransferManager.TryExportAnchorsAsync Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Exporta âncoras espaciais para um fluxo, que posteriormente pode ser importado em outro dispositivo. Isso permite que ambos os dispositivos raciocinam sobre os mesmos locais nos arredores de seus usuários.
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)
Parâmetros
- anchors
-
IIterable<IKeyValuePair<Platform::String,SpatialAnchor>>
IIterable<IKeyValuePair<winrt::hstring,SpatialAnchor>>
A coleção de âncoras a serem exportadas, cada uma identificada por uma chave de cadeia de caracteres especificada pelo aplicativo.
- stream
- IOutputStream
O fluxo para o qual exportar âncoras.
Retornos
Operação que dispara depois que a exportação é concluída.
- Atributos
Requisitos do Windows
Funcionalidades do aplicativo |
spatialPerception
|
Comentários
É responsabilidade do aplicativo obter os dados no fluxo para o outro dispositivo por meio de seu próprio canal de rede.
Esse método produzirá um resultado de true se a exportação tiver sido bem-sucedida. A exportação poderá falhar se o sistema de compreensão espacial atingir o tempo limite durante a exportação.
Nota: Se você estiver usando JavaScript, não poderá criar o parâmetro anchors diretamente, pois ele é do tipo IIterable<IKeyValuePair<Platform::String^, Windows::P erception::Spatial::SpatialAnchor^>>. Em vez disso, crie um componente auxiliar nativo do WinRT que tenha uma função 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^>();
}
Agora você pode preencher a coleção de âncoras em JavaScript e passá-la para o método TryExportAnchorsAsync. O exemplo de código a seguir mostra como usar a classe SpatialAnchorHelper para popular a coleção de âncoras.
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");
...