ios - 需求:【室内定位】在【公司前台】让客户摇一摇手机,签到。
PHP中文网
PHP中文网 2017-04-18 09:14:04
0
5
385

1.限定了范围大概前台方圆50m范围内(公司在71楼,260m)
2.签到不需要让客户知道,所以只有摇一摇事件,没有界面。
3.公司前台的坐标能够拿到,我写定了。
4.我的做法是 :用自带的CoreLocation框架,拿到客户定位经纬度坐标,得到与前台的经纬度之间的距离(单位:米),距离小于50,则可以进行签到。

 func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
             
        /** 获取到最新的坐标 */
       let currentLocation : CLLocation = locations.last!
       
       let currentLongitude = currentLocation.coordinate.longitude
       let currentLatitude  = currentLocation.coordinate.latitude
        
        
        /** 客户坐标和目标坐标之间的距离 */
        let distance : CLLocationDistance = currentLocation.distanceFromLocation(SQLocation)
        
        finalDistance = distance
        
        distanceLabel.text = String(format: "距离SQ公司:%.2f 米",finalDistance)
    }

现在的问题是 : 用移动网络定位,效果很差劲,精确度比wifi下定位精确度低,信号不好剩下1格的时候,更新定位距离设为1m,也很久不更新定位。

有没有精确度高点的方案,难度小点,或者可以进行改进的地方。
需要使用高德地图吗,我只需要用户的定位,不做别的,自带的定位CoreLocation,难道满足不了?
PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(5)
阿神

トピック所有者のソリューションとして、前述の Amap や Baidu などのサードパーティの測位ソリューションを選択できます。関連する API、Baidu Positioning iOS SDK

を参照できます。
いいねを押す +0
左手右手慢动作

これはおそらく機能しません。実際の座標から数百メートル離れている場合は、考えを変えるか、50 メートルの制限を拡張する必要があります。

いいねを押す +0
Peter_Zhu

Bluetooth と WLAN は現在、市場で屋内測位に一般的に使用されています

iOS の CoreLocation を使用して位置情報を取得するには、Bluetooth/WLAN をオンにする必要があります
(iOS が対応する WLAN、Bluetooth データ、および位置情報をサーバーにアップロードするまで待つ必要があります)

近くの WLAN および Bluetooth デバイスの MAC アドレスを比較することで、ニーズを実現できます

いいねを押す +0
Ty80

BLE 開発ボードを使用するか、小型の ibeacon デバイスを直接購入してフロントデスクに置きます。センチメートルレベルまたは最大 10 メートルまでの精度が可能 +
Android/iOS は近距離測定を直接実行できます
iOS と Android には対応する SDK があります
さらに、WeChat シェイクメソッドを使用することもできます。WeChat に従ってくださいプロトコルの統合

いいねを押す +0
刘奇

投稿者の投稿リストを調べました
投稿者には Google を上手に活用することをお勧めします
そうでない場合は、Baidu
この種の問題は検索すればたくさん見つかります

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート