SpatialAnchorTransferManager.TryExportAnchorsAsync Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Экспортирует пространственные привязки в поток, который позже можно импортировать на другом устройстве. Это позволяет обоим устройствам обдумать одни и те же расположения в окружении пользователей.
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)
Параметры
- anchors
-
IIterable<IKeyValuePair<Platform::String,SpatialAnchor>>
IIterable<IKeyValuePair<winrt::hstring,SpatialAnchor>>
Коллекция привязок для экспорта, каждая из которых определяется строковым ключом, заданным приложением.
- stream
- IOutputStream
Поток, в который экспортируются привязки.
Возвращаемое значение
Операция, активируемая после завершения экспорта.
- Атрибуты
Требования к Windows
Возможности приложения |
spatialPerception
|
Комментарии
Приложение отвечает за получение данных в потоке на другое устройство через собственный сетевой канал.
Этот метод возвращает результат true , если экспорт выполнен успешно. Экспорт может завершиться ошибкой, если во время экспорта истекает время ожидания системы пространственного распознавания.
Примечание: Если вы используете JavaScript, вы не можете создать параметр anchors напрямую, так как он относится к типу IIterable<IKeyValuePair<Platform::String^, Windows::P erception::Spatial::SpatialAnchor^>>. Вместо этого создайте собственный вспомогательный компонент WinRT с функцией 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^>();
}
Теперь вы можете заполнить коллекцию привязок в JavaScript и передать ее методу TryExportAnchorsAsync. В следующем примере кода показано, как использовать класс SpatialAnchorHelper для заполнения коллекции привязок.
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");
...