ios 持续获取定位 高德地图_iOS 高德地图 & 定位的一些坑

1.高德地图

1.1 MAMapView 在首次打开的时候无法正常的定位到当前位置

问题:

在地图初始化完成了以后,有时候会定位到北京,有时候会正常的定位本地。存在一定的几率无法正常定位到当前位置的问题。

2.原因:

在进行 MAMapView 展示的时候,有时候还没有进行对地图进行手势的操作,拖拉、缩放之类的动作。还没有出发用户操作的那些代理方法,应该在位置变化的时候,初始化得到用户的当前位置,这样才可以搜索附近的 POI 数据

/**

* @brief 位置或者设备方向更新后,会调用此函数

* @param mapView 地图View

* @param userLocation 用户定位信息(包括位置与设备方向等数据)

* @param updatingLocation 标示是否是location数据更新, YES:location数据更新 NO:heading数据更新

**/

- (void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation updatingLocation:(BOOL)updatingLocation;

把下面的代码粘上去就可以正常的定位了

- (void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation updatingLocation:(BOOL)updatingLocation

{

if(!updatingLocation)

return ;

if (userLocation.location.horizontalAccuracy < 0)

{

return ;

}

// only the first locate used.

if (!self.isLocated)

{

self.isLocated = YES;

[_mapView setCenterCoordinate:CLLocationCoordinate2DMake(userLocation.location.coordinate.latitude, userLocation.location.coordinate.longitude)];

_mapView.userTrackingMode = MAUserTrackingModeFollow;

aMapPOIAroundSearchRequest.location = [AMapGeoPoint locationWithLatitude:userLocation.coordinate.latitude longitude:userLocation.coordinate.longitude];

[_aMapSearchAPI AMapPOIAroundSearch:aMapPOIAroundSearchRequest];

}

}

2 GPS 定位的一些坑

1.定位

GPS 的定位停留在上一次的位置,无论怎么定位都停留在上一次的位置无法刷新。

2.解决方法:

打开 wifi和蜂窝网络辅助定位进行尝试 ,或者在隐私中重新启动定位服务

3.原因

1.GPS 的小科普

GPS的空间部分是由24颗卫星组成(21颗工作卫星;3颗备用卫星),它位于距地表20200km的上空,运行周期为12h。卫星均匀分布在6个轨道面上(每个轨道面4颗),轨道倾角为55°。卫星的分布使得在全球任何地方、任何时间都可观测到4 颗以上的卫星,并能在卫星中预存导航信息,GPS的卫星因为大气摩擦等问题,随着时间的推移,导航精度会逐渐降低。(来自:百度百科)。

2.定位出错的原因

我们能够进行导航就是因为在我们头顶上的这21颗 gps 的工作卫星。并且GPS 的导航其实是基于这些卫星信号进行的,如果信号在传输的过程中受损或者中断,就会导致定位不准的问题。因此在高楼林立的地方 GPS 定位就比较差,在空旷的地方定位就比较准确。

3.修正误差

现在我们进行定位的时候,不仅仅是只用 GPS 进行定位,而是混合定位。就是 GPS、WiFi、蜂窝网络一起进行的定位服务。通过 WiFi 和蜂窝网络可以减少 GPS 定位存在的误差。

3.结束

最近在做 POI的搜索和基于高德地图的定位服务,踩了很多的坑,对 GPS的定位有了一些新的认识。希望能和大家分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值