我正在创建一个应用来显示用户当前位置附近的一些地方。当用户移动地图时,地图一遍又一遍地将用户移动到他的当前位置。因此,用户无法在地图上看到注释,因为如果他移动地图,地图将返回到当前位置。
这就是我现在正在做的事情:
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
if (userLocation)
{
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 1000, 1000);
MKCoordinateRegion regionDelMapa = [self.mapa regionThatFits:region];
if(isnan(regionDelMapa.center.latitude))
{
NSLog(@"Bad region...");
}else
{
[self.mapa setRegion:regionDelMapa animated:YES];
}
}
}
我在这里尝试了其他一些答案,但没有任何反应。这不是理想的行为,那么如何才能停止更新用户的当前位置?
答案 0 :(得分:3)
[self.mapa setRegion:regionDelMapa animated:YES];
该行设置地图区域。您每次获得更新时都会执行该代码,从而重置地图所覆盖的区域。如果您不希望地图在每次更新时重新定位用户的位置,请从-mapView:didUpdateUserLocation:
方法中删除该代码。
如果您希望将地图集中在用户上,然后允许用户滚动离开该位置,请使用核心位置获取用户的位置。
答案 1 :(得分:1)
请使用此API:[locationManager stopUpdatingLocation];
在函数didUpdateUserLocation
中添加它。