You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用 Azure Spatial Anchors 时如何获取多个Anchor?

iOS Swift 端批量获取Azure Spatial Anchors实现方案

你已经完成单Anchor的增查操作,说明基础的会话配置、权限校验都已经正常,批量获取仅需要调整查询逻辑即可,具体操作如下:


操作步骤

  • 第一步:整理查询条件,支持两种常用的批量查询规则
    • 按指定锚点ID批量查询:提前把需要获取的多个锚点的唯一ID存入数组,适合明确知道要拉取哪些锚点的场景
    • 按空间位置/自定义属性查询:设置附近范围、自定义标签过滤条件,适合拉取当前空间内所有符合要求的锚点的场景
  • 第二步:创建查询对象并启动监听
    基于你的ASACloudSpatialAnchorSession实例创建查询,通过ASACloudSpatialAnchorWatcher监听返回的锚点结果,所有匹配的锚点会通过回调逐个返回
  • 第三步:处理返回结果,完成批量获取
    回调中接收找到的锚点,存入自定义数组存储,可根据业务需求判断所有目标锚点都返回后停止监听

代码示例

// 1. 初始化已经配置好的云锚点会话,你之前单锚点用的实例即可
var cloudSession: ASACloudSpatialAnchorSession?
var foundAnchors: [ASACloudSpatialAnchor] = []
var currentWatcher: ASACloudSpatialAnchorWatcher?

// 场景1:按指定ID批量查询
func queryAnchorsByIds(anchorIds: [String]) {
    let criteria = ASAAnchorLocateCriteria()!
    criteria.identifiers = anchorIds
    // 启动监听
    currentWatcher = cloudSession?.createWatcher(criteria)
}

// 场景2:查询当前位置附近5米内的所有锚点
func queryNearbyAnchors() {
    let criteria = ASAAnchorLocateCriteria()!
    let nearDevice = ASANearDeviceCriteria()!
    nearDevice.distanceInMeters = 5.0
    nearDevice.maxResultCount = 20 // 最多返回20个锚点,可自定义
    criteria.searchNearDevice = nearDevice
    currentWatcher = cloudSession?.createWatcher(criteria)
}

// 实现锚点定位回调,你之前单锚点应该已经实现了该代理方法
func session(_ session: ASACloudSpatialAnchorSession!, didLocate anchor: ASACloudSpatialAnchor!) {
    DispatchQueue.main.async { [weak self] in
        guard let self = self, !self.foundAnchors.contains(anchor) else { return }
        // 把找到的锚点加入数组
        self.foundAnchors.append(anchor)
        
        // 可选:如果是按ID查询,判断所有目标锚点都找到后停止监听
        // if self.foundAnchors.count == targetIdCount {
        //     self.currentWatcher?.stop()
        //     self.currentWatcher = nil
        // }
    }
}

注意事项

  • 批量查询的最大返回数量可通过maxResultCount参数自定义,最大值为35
  • 不需要继续监听锚点时要主动调用stop()方法停止watcher,避免内存泄漏和多余的性能消耗
  • 如果需要按自定义属性筛选,可给ASAAnchorLocateCriteria的requiredFilterFields参数传入自定义标签,实现更精准的批量拉取

内容的提问来源于stack exchange,提问作者Rohit Joshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:12:08