Como criar e localizar âncoras com a relocalização grosseira em Java
As Âncoras Espaciais do Azure podem associar dados do sensor no dispositivo ao posicionamento das âncoras que criar. Estes dados também podem ser utilizados para determinar rapidamente se existem âncoras nas proximidades do seu dispositivo. Para obter mais informações, veja Relocalização conjunta.
Pré-requisitos
Para concluir este guia, certifique-se de que tem:
- Conhecimentos básicos de Java.
- Leia a descrição geral das Âncoras Espaciais do Azure.
- Concluiu um dos Inícios Rápidos de 5 minutos.
- Leia os procedimentos Criar e localizar âncoras.
Configurar o fornecedor de impressões digitais do sensor
Vamos começar por criar e configurar um fornecedor de impressões digitais do sensor. O fornecedor de impressões digitais do sensor tratará da leitura dos sensores específicos da plataforma no seu dispositivo e da conversão das respetivas leituras numa representação comum consumida pela sessão de âncora espacial na cloud.
Importante
Certifique-se de que verifica aqui se os sensores que está a ativar estão disponíveis na sua plataforma.
// Create the sensor fingerprint provider
PlatformLocationProvider sensorProvider = new PlatformLocationProvider();
// Allow GPS
SensorCapabilities sensors = sensorProvider.getSensors();
sensors.setGeoLocationEnabled(true);
// Allow WiFi scanning
sensors.setWifiEnabled(true);
// Populate the set of known BLE beacons' UUIDs
String uuids[] = new String[2];
uuids[0] = "22e38f1a-c1b3-452b-b5ce-fdb0f39535c1";
uuids[1] = "a63819b9-8b7b-436d-88ec-ea5d8db2acb0";
// Allow the set of known BLE beacons
sensors.setBluetoothEnabled(true);
sensors.setKnownBeaconProximityUuids(uuids);
Configurar a sessão de âncora espacial na cloud
Vamos tratar da configuração da sessão de âncora espacial na cloud em seguida. Na primeira linha, definimos o fornecedor de sensores na sessão. A partir de agora, qualquer âncora que criarmos durante a sessão será associada a um conjunto de leituras de sensores. Em seguida, instanciamos um critério de localização quase do dispositivo e inicializámo-lo para corresponder aos requisitos da aplicação. Por fim, instruímos a sessão a utilizar dados de sensores ao localizar âncoras ao criar um observador a partir dos nossos critérios de quase dispositivo.
// Set the session's sensor fingerprint provider
cloudSpatialAnchorSession.setLocationProvider(sensorProvider);
// Configure the near-device criteria
NearDeviceCriteria nearDeviceCriteria = new NearDeviceCriteria();
nearDeviceCriteria.setDistanceInMeters(5.0f);
nearDeviceCriteria.setMaxResultCount(25);
// Set the session's locate criteria
AnchorLocateCriteria anchorLocateCriteria = new AnchorLocateCriteria();
anchorLocateCriteria.setNearDevice(nearDeviceCriteria);
cloudSpatialAnchorSession.createWatcher(anchorLocateCriteria);
Após a criação do observador, o AnchorLocated
evento será acionado para cada âncora pedida. Este evento é acionado quando uma âncora está localizada ou se não é possível localizar a âncora. Se esta situação acontecer, o motivo será indicado no estado. Depois de todas as âncoras de um observador serem processadas, encontradas ou não encontradas, o LocateAnchorsCompleted
evento será acionado. Existe um limite de 35 identificadores por observador.
Passos seguintes
Neste guia, aprendeu a criar e localizar âncoras com sensores no dispositivo. Para saber mais sobre a relocalização grosseira, avance para o guia seguinte.