? ? ? ? 最近公司要做停車自動標記車輛位置的功能,這是室內定位反向尋車系統的前提條件,也是室內定位技術剛需!
解決思路:
? ? ? ? 剛開始想到該技術通過傳感器中加速度計、計步器等數據,通過一系列算法計算分辨出,“人行”/“車行”。從而通過時間戳對照到GPS定位點,從而做到標記車輛位置到地圖上!
? ? ? ? 經過測試iPhone 計步器和加速度計,發現當用戶把手機鎖屏或者APP掛起狀態時候,計步器和加速度計,GPS都不會在后臺發送數據,(因為要通過收集數據才能分析處理,所以掛起狀態不發送數據從而不能從這思路解決問題)通過查閱資料,發現GPS定位服務可以在后臺一直處于運行狀態,以下是解決辦法:
1、 首先把定位服務的后臺啟動模式打開 如圖 1
圖 1
2、設置CLLocationManager的屬性,如圖2。 ? ??
?提示: ?1)2)3)4)一步不能少,少了APP就不能在后臺一直運行了。
? 1) 定位管理者需要一直請求定位服務,requestAlwaysAuthorization;
? 2)需要允許后臺更新數據更新,setAllowBackgroundLocationUpdates;
? 3) ?設置不允許暫停自動刷新數據功能,pusesLocationUpdatesAutomatically = NO;
? 4)設置定位更新的最小距離為空,kCLDistanceFilterNone;
圖 2
然后經過測試,定位服務和計步器、傳感器都能在掛起狀態不能被KILL掉。
注意: 之前沒有設置2的 ?3) 4)的時候,APP有時候會在16分鐘,18分鐘,20分鐘左右不發送用戶位置,和計步器、傳感器數據。一定要把3)4)設置正確。