当用户移动地图时,停止 MKMapView 移动到用户的当前位置
Posted
技术标签:
【中文标题】当用户移动地图时,停止 MKMapView 移动到用户的当前位置【英文标题】:Stop MKMapView from moving to user's current location when user moves the map 【发布时间】:2013-08-24 03:38:44 【问题描述】:我正在制作一个应用程序来显示用户当前位置附近的一些地方。当用户移动地图时,地图会一遍又一遍地将用户移动到他的当前位置。所以,用户看不到地图上的注释,因为如果他移动地图,地图就会回到他当前的位置。
这就是我现在正在做的事情:
- (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];
我在这里尝试了其他一些答案,但没有任何反应。这不是我们想要的行为,那么如何停止更新用户的当前位置?
【问题讨论】:
【参考方案1】:[self.mapa setRegion:regionDelMapa animated:YES];
那条线设置地图区域。每次获得更新时,您都在执行该代码,从而重置地图覆盖的区域。如果您不希望地图在每次更新时重新以用户位置为中心,请从 -mapView:didUpdateUserLocation:
方法中删除该代码。
如果您想将用户的地图居中一次,然后允许用户滚动离开该位置,请使用核心位置来获取用户的位置。
【讨论】:
【参考方案2】:请使用此 API:[locationManager stopUpdatingLocation];
将此添加到您的函数中 didUpdateUserLocation
。
【讨论】:
以上是关于当用户移动地图时,停止 MKMapView 移动到用户的当前位置的主要内容,如果未能解决你的问题,请参考以下文章
将 MKMapView 移动到相对于 superview 的特定位置
如何在 MKMapView 中将图钉和地图保持在移动叠加层上方的中心