다음을 통해 공유


C++/NDK의 광역 위치 재결정을 사용하여 앵커를 만들고 찾는 방법

Azure Spatial Anchors는 사용자가 만든 앵커와 디바이스 내 위치 센서 데이터를 연결할 수 있습니다. 이 데이터를 사용하여 디바이스 근처에 앵커가 있는지 여부를 신속하게 확인할 수도 있습니다. 자세한 내용은 광역 위치 재결정을 참조하세요.

필수 조건

이 가이드를 완료하려면 다음이 필요합니다.

센서 지문 공급자 구성

먼저 센서 지문 공급자를 만들고 구성합니다. 센서 지문 공급자는 디바이스의 플랫폼별 센서를 읽고 해당 판독값을 클라우드 앵커 세션에서 사용하는 일반적인 표현으로 변환합니다.

Important

활성화하려는 센서를 현재 플랫폼에서 사용할 수 있는지 여기서 확인하세요.

// Create the sensor fingerprint provider
std::shared_ptr<PlatformLocationProvider> sensorProvider;
sensorProvider = std::make_shared<PlatformLocationProvider>();

// Allow GPS
const std::shared_ptr<SensorCapabilities>& sensors = sensorProvider->Sensors();
sensors->GeoLocationEnabled(true);

// Allow WiFi scanning
sensors->WifiEnabled(true);

// Populate the set of known BLE beacons' UUIDs
std::vector<std::string> uuids;
uuids.push_back("22e38f1a-c1b3-452b-b5ce-fdb0f39535c1");
uuids.push_back("a63819b9-8b7b-436d-88ec-ea5d8db2acb0");

// Allow the set of known BLE beacons
sensors->BluetoothEnabled(true);
sensors->KnownBeaconProximityUuids(uuids);

클라우드 공간 앵커 세션 구성

다음으로 클라우드 공간 앵커 세션을 구성합니다. 첫 번째 줄에서는 세션에서 센서 공급자를 설정합니다. 지금부터 세션 중에 만든 모든 앵커는 센서 판독값 세트와 연결됩니다. 다음으로, 주변 디바이스 찾기 기준을 인스턴스화하고 애플리케이션 요구 사항에 맞게 초기화합니다. 마지막으로, 주변 디바이스 기준에서 감시자를 만들어 앵커를 찾을 때 센서 데이터를 사용하도록 세션에 지시합니다.

// Set the session's sensor fingerprint provider
cloudSpatialAnchorSession->LocationProvider(sensorProvider);

// Configure the near-device criteria
auto nearDeviceCriteria = std::make_shared<NearDeviceCriteria>();
nearDeviceCriteria->DistanceInMeters(5.0f);
nearDeviceCriteria->MaxResultCount(25);

// Set the session's locate criteria
auto anchorLocateCriteria = std::make_shared<AnchorLocateCriteria>();
anchorLocateCriteria->NearDevice(nearDeviceCriteria);
cloudSpatialAnchorSession->CreateWatcher(anchorLocateCriteria);

감시자를 만든 후에는 요청된 모든 앵커에 대해 AnchorLocated 이벤트가 발생합니다. 이 이벤트는 앵커가 있는 경우 또는 앵커를 찾을 수 없는 경우에 발생합니다. 이러한 상황이 발생하는 경우 이유가 상태에 명시됩니다. 감시자의 모든 앵커를 처리하거나, 찾거나, 찾지 못하게 되면 LocateAnchorsCompleted 이벤트가 발생합니다. 감시자당 식별자는 35개로 제한됩니다.

다음 단계

이 가이드에서는 디바이스 센서를 사용하여 앵커를 만들고 찾는 방법을 배웠습니다. 광역 위치 재결정에 대한 자세한 내용은 다음 가이드를 참조하세요.