SpatialAnchorTransferManager.TryExportAnchorsAsync 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
나중에 다른 디바이스에서 가져올 수 있는 스트림으로 공간 앵커를 내보냅니다. 이렇게 하면 두 디바이스가 사용자 환경에서 동일한 위치를 추론할 수 있습니다.
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를 사용하는 경우 iIterable<IKeyValuePair<Platform::String^, Windows::P erception::Spatial::SpatialAnchor^>>형식이므로 앵커 매개 변수를 직접 만들 수 없습니다. 대신 CreateMap 함수가 있는 네이티브 WinRT 도우미 구성 요소를 만듭니다.
#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");
...