账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    iOS中使用定位时首次定位会定位到(0,0),第二次开始才正常是什么原因?
    30
    0

    问题

    iOS中使用CLLocationManager定位时首次定位会定位到(0,0),第二次开始才正常

    平台

    Xcode10

    相关代码

    func mapViewDidStopLocatingUser(_ mapView: MKMapView)

    {
        let userCoordinate = mapView.userLocation.coordinate
        if userCoordinate.latitude != 0 || userCoordinate.longitude != 0
        {
            mapView.setRegion(MKCoordinateRegion(center: userCoordinate, span: MKCoordinateSpan(latitudeDelta: 0.5, longitudeDelta: 0.5)), animated: true)
        }
    }

    控制台输出:
    第一次定位
    It is requestAlwaysAuthorization in service.
    Locating you = CLLocationCoordinate2D(latitude: 0.0, longitude: 0.0)
    第二次定位:
    It is requestAlwaysAuthorization in service.
    Locating you = CLLocationCoordinate2D(latitude: 40.323220237616745, longitude: 120.35186464600588)
    第三次定位:
    It is requestAlwaysAuthorization in service.
    Locating you = CLLocationCoordinate2D(latitude: 40.32324630077117, longitude: 120.35181804451575)

    你期待的结果是什么?实际看到的错误信息又是什么?

    想知道有哪些原因可能造成这个bug?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ソ记忆扯散流年 普通会员 1楼

      在iOS中,首次定位会将用户的位置设置为(0,0),这是因为iOS使用基于位置的用户界面(UI),这种界面是基于用户的地理位置。用户的位置信息会被发送到服务器,然后服务器会将这些信息显示在界面上。

      然而,当用户第二次开始使用应用时,由于在第一次定位后,用户的移动轨迹已经发生变化,服务器会重新发送位置信息给应用。所以,应用在第二次使用时,会获取到新的位置信息,从而能够正确地显示在界面上。

      需要注意的是,由于iOS的地理位置信息是非常准确的,所以用户在第一次使用应用时,应该能够获得一个非常准确的位置信息。但是,由于用户可能会有小范围的移动,所以第二次使用时,可能会得到一个稍微偏移的位置信息。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部