Skip to content
This repository has been archived by the owner on May 20, 2023. It is now read-only.

Latest commit

 

History

History
80 lines (74 loc) · 3.37 KB

README.md

File metadata and controls

80 lines (74 loc) · 3.37 KB

IndoorPos

License

简介

项目年久失修 仅供参考 ゜▽゜)ノ
该项目为本人实习期间的项目 内容为基于ibeacon的AR室内定位导航

使用技术

... ...
语言 Objective-C swift
扫描ibeacon brightSDK
定位 最小二乘法三点定位
地图 蜂鸟云地图sdk
AR ARKit

项目结构

├──BrightSDK (智石科技扫描蓝牙sdk)
├──FMBundle.bundle (蜂鸟云地图的资源包)
├──FMMapKit (蜂鸟云地图sdk)
├──location.xcodeproj
├──location    
├── AppDelegate
│   ├── AppDelegate.h
│   ├── AppDelegate.m (配置蜂鸟云appkey)
├── Assets.xcassets
├── Base.lproj
├── Controller
│   ├── ARViewController.h 
│   ├── ARViewController.m (AR场景)
│   ├── BRTBeaconScan.h 
│   ├── BRTBeaconScan.m (扫描ibeacon并设置每个ibeacon放置的位置 在回调中保存全局定位点)
│   ├── BRTViewController.h (已弃用)
│   ├── BRTViewController.m (已弃用)
│   ├── BeaconViewController.h (已弃用)
│   ├── BeaconViewController.mm (已弃用)
│   ├── MapViewController.h
│   ├── MapViewController.m (提供2D地图的操作)
├── Info.plist 
├── MapData
│   ├── 10347.fmap
│   ├── cmbintern.fmap (专门绘制的办公室地图)
│   ├── xierqisubway
├── Model
│   ├── Coordination.h 
│   ├── Coordination.m (坐标包装类)
│   ├── NaviResult.h (dto)
│   └── NaviResult.m 
├── Swift
│   └── location-Bridging-Header.h
├── Util
│   ├── Location.swift (最小二乘法三边定位算法)
│   ├── LocationUtil.h (已弃用)
│   └── LocationUtil.mm (C++矩阵库编写有冲突已弃用)
├── art.scnassets
│   ├── arrow.dae (AR需要用到的箭头)
│   └── arrow.scn
└── main.m

使用说明

需要先按步骤接入fengmap(引入几个系统静态库):https://www.fengmap.com/develop-ios-guide-environment.html

项目展示

只有三个ibeacon时的定位demo: 定位 办公室地图: 办公室 项目2D效果 左图片右gif:

项目AR效果:

具体流程

首先部署ibeacon 录入在自定义坐标系中的绝对位置 当用户点击开始导航后 程序开始扫描附近搜得到的ibeacon 并通过三边定位算法估算出用户在绝对坐标系中的坐标 传递给fengmap在地图上显示定位点 通过每一秒的回调函数更新在地图上的显示