IOS 判断GPS信号强弱

今天公司要加个添加行程轨迹的需求,同时需要加上Gps信号弱的时候,比如跑到山区或者无人区的时候需要添加GPS处理,网上找了一些办法,都是关于弱网和飞行模式下的处理,或者用高德sdk的轨迹纠偏,没有关于GPS信号弱的判断,就自己写了一个方法,供参考,当我们使用高德地图的时候,更新位置一般会调用(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation委托代理方发,此时我们可以根据MKUserLocation的location属性,根据location属性的horizontalAccuracy来判断GPS信号强弱,horizontalAccuracy的单位为米,代表GPS信号的精确度,越低表示定位越准确,需要注意的是当为负数,表示没有GPs信号。所以可以根据这个属性来判断GPS的信号强度。

根据打印出的信号强度,正常gps信号都在18,20多,在室内的话,一般大于100多的时候,表示定位不太准确了,室外运动的时候,我把它定位143,因为产品特意跑到隧道里测的🤦♂️。希望对大家有帮助

- (NSInteger)judgeGpsSingal:(CLLocation*)userLocation

{

    if(userLocation.horizontalAccuracy<0)

    {

        // 没有Gps信号

        return  -1;

    }

    elseif(userLocation.horizontalAccuracy>143)

    {

        // GPs信号弱

        return 0;

    }

    else if(someLocation.horizontalAccuracy>48)

    {

        // Gps信号一般

        return  1;

    }

    else

    {

        // GPS信号强

        return2;

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容