恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Mirador 两种 POI 配置方式实战对比:代码编写 vs JSON 文件,该如何选择?

  • 首页
  • 资讯中心
  • /
  • Mirador 两种 POI 配置方式实战对比:代码编写 vs JSON 文件,该如何选择?

相关资讯

Reactive Manifesto进阶教程:Back-Pressure背压机制如何拯救过载系统 2026/8/25 9:29:28
为什么DreamDiffusion要用CLIP对齐EEG与图像嵌入?脑波生图原理详解 2026/8/25 9:29:28
机械臂如何避障绕障?mujoco-learning中OMPL RRT路径规划完全指南 2026/8/25 9:29:28

最新资讯

Linux下Nvidia显卡风扇控制:从原理到自动化脚本实战
AI面试官系统:FastAPI与Agentic RAG的进化实践
AI智能面试系统:动态进化与博客集成实践
Android面试核心考点与实战技巧解析
网易云音乐NCM解密完整教程:用ncmdump三步完成单文件到批量转换
小红书前端面试解析:Vue3与性能优化实战

今日推荐

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南
洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表
Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Mirador 两种 POI 配置方式实战对比:代码编写 vs JSON 文件,该如何选择?

发布时间:2026/8/25 9:29:28
Mirador 两种 POI 配置方式实战对比:代码编写 vs JSON 文件,该如何选择? Mirador 两种 POI 配置方式实战对比代码编写 vs JSON 文件该如何选择【免费下载链接】MiradorMirador makes it easy to build impressive “Point of Interest” AR experiences, on Apples new RealityKit framework.项目地址: https://gitcode.com/gh_mirrors/mi/MiradorMirador 是一个基于 Apple RealityKit 框架的开源 Swift 库让你轻松构建兴趣点POIAR 体验——手机对准眼前的地标城市 POI 标签就会悬浮在真实场景中。本文实战对比它的两种 POI 数据配置方式代码编写与JSON 文件帮你在自己的项目里选对方案。Mirador 是什么为什么 POI 配置是关键一步旅游导览、城市观景台、制高点打卡……这些场景都要把信息钉在真实地理位置上。难点在于 RealityKit 这类 AR 框架是位置无关的它只跟踪设备的相对运动不懂 GPS 坐标而手机 GPS 和指南针又常年不准位置偏几十米、朝向偏 90° 是常态。Mirador 的解法是用一张视觉锚点图片眼前的地标或铭牌来定位设备和朝向再把每个 POI 按真实坐标渲染到正确位置。锚点位置更新还会经过卡尔曼滤波KalmanFilter.swift平滑画面不会抖动。整个上手只有 3 步配置兴趣点POI——用代码或 JSON本文的主角提供锚点图片——放入 Assets文件名与锚点名一致运行 MiradorView——前台调run()后台调pause()库要求iOS 16包定义见 Package.swift。如何用代码配置 POI最小可用示例适合原型验证、POI 数量少≤10 个、数据需要动态生成。核心就三类对象LocationAnchor视觉锚点。名称、真实宽度、GPS 坐标、朝向角弧度、摆放方向水平/垂直PointOfInterest单个兴趣点。名称 位置MiradorView传入锚点调用run()完整定义见 LocationAnchor.swift经纬度换算Haversine 距离、方位角在 Location.swift。最小示例let anchor LocationAnchor( name: greenwich, // 必须与 Assets 中锚点图片同名 physicalWidth: 0.5, // 锚点真实宽度米 location: Location(coordinate: Coordinate(latitude: 51.477878, longitude: -0.000846), altitude: 46), bearing: Float(-30).degreesToRadians, orientation: .horizontal) let poi PointOfInterest(name: Canary Wharf, location: Location(coordinate: Coordinate(latitude: 51.504937, longitude: -0.019480), altitude: 50)) anchor.pointsOfInterest.append(poi) let view MiradorView(locationAnchor: anchor) view.run()示例工程逐行演示了这条路见 ContentView.swiftSwiftUI 项目改用MiradorViewContainer(locationAnchor:)嵌入即可。✅优点编译器全程类型检查可随时叠加addPOIImage()/addPOIEntity()自定义元素 ❌缺点样板代码多几十上百个 POI 手写会非常痛苦如何用 JSON 文件配置 POI一个文件搞定POI 一多Mirador 支持用单个 JSON 文件配置整个体验固定结构 一个anchor块 一个points_of_interest数组。官方样例 greenwich.json 里配置了 6 个 POI{ anchor: { name: greenwich, physical_width: 0.5, coordinate: [-0.00084588, 51.47787836], altitude: 46.0, bearing_degrees: -30, orientation: horizontal }, points_of_interest: [ { name: Canary Wharf, coordinate: [-0.01948017, 51.50493780], altitude: 235 } ], version: 1.0 }加载只需要几行if let path Bundle.main.path(forResource: greenwich, ofType: .json), let anchor LocationAnchor.anchorFromFile(atPath: path) { let view MiradorView(locationAnchor: anchor) view.run() }解码逻辑含方位角度转弧度在 LocationAnchorJSON.swift它还提供anchorFromJSONData(jsonData:)直接解析Data适合从服务端拉取 POI 数据。示例工程的 JSON 路线见 ContentView.swift。✅优点改 POI 不用重编译非程序员也能维护批量管理和多视角扩展都更顺手 ❌缺点无编译期检查字段名、坐标顺序写错只能在运行时发现POI 配置对比清单一张表看懂该选哪个对比维度代码编写JSON 文件推荐 POI 数量≤ 10 个10 个以上数据维护改代码 重新编译改 JSON 即可谁来维护开发者运营 / 内容人员可上手动态数据服务端下发✅ 容易✅anchorFromJSONData直接解析类型安全✅ 编译期检查⚠️ 解析失败返回 nil叠加自定义元素✅ 随时调用addPOIImage⚠️ 需加载后再补充学习成本需理解几个核心类看懂 JSON 结构即可POI 配置避坑指南5 个高频错误坐标顺序和代码相反JSON 的coordinate是[经度, 纬度]而代码里Coordinate(latitude:longitude:)纬度在前——这是第一高频错误。bearing 单位不同代码传弧度Float(-30).degreesToRadiansJSON 传角度bearing_degrees: -30。️锚点图片必须同名Assets 里要有一张与LocationAnchor.name同名的图片。示例工程用的是格林尼治地面铭牌的照片3024×4032 实拍图拍摄要点正对拍摄、避开阴影与反光RealityKit 认不出被透视变形过的图。铭牌贴地这类场景用horizontal投在屏幕上用vertical。细节别漏Info.plist 加NSCameraUsageDescriptionRealityKit 依赖摄像头必须真机运行模拟器无效。如何选择按场景对号入座原型验证 / POI ≤ 10 个→ 代码编写类型安全、调试方便旅游导览 / 城市观景台 / POI 成百上千→ JSON 文件内容团队独立维护坐标POI 由服务端动态下发→ 沿用 JSON 结构走anchorFromJSONData(jsonData:)本地与远程一套解析多视角多锚点应用→ 每个视角一个 JSON 文件比代码里堆一堆锚点好维护两种路线最终都汇聚到同一个LocationAnchor对象随时可以切换或混用更完整的配置细节锚点拍摄、录制 RealityKit 会话在家回放调试等见 README.md。关键文件清单核心类锚点 / POISources/Mirador/LocationAnchor.swiftJSON 解码Sources/Mirador/LocationAnchorJSON.swiftAR 视图与run()/pause()Sources/Mirador/MiradorView.swift地理坐标计算Sources/Mirador/Location.swift样例 POI 数据Demo/greenwich.json示例入口两种写法并存Demo/ContentView.swift一句话总结POI 少用代码换类型安全POI 多上 JSON 换可维护性——两条路殊途同归按需切换即可。【免费下载链接】MiradorMirador makes it easy to build impressive “Point of Interest” AR experiences, on Apples new RealityKit framework.项目地址: https://gitcode.com/gh_mirrors/mi/Mirador创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号