如何放大用户当前位置?
Posted
技术标签:
【中文标题】如何放大用户当前位置?【英文标题】:How to zoom into user current location? 【发布时间】:2013-04-05 11:57:38 【问题描述】:当应用在 MapKit 中启动时,我想放大用户当前位置。 这是我的代码(在 viewDidLoad 函数中):
Locate=[[CLLocationManager alloc]init];
Locate.delegate=self;
Locate.desiredAccuracy=kCLLocationAccuracyBestForNavigation;
Locate.distanceFilter=kCLDistanceFilterNone;
[Locate startUpdatingLocation];
[super viewDidLoad];
//Region
MKCoordinateRegion myRegion;
//Center
CLLocationCoordinate2D center;
center.latitude=Locate.location.coordinate.latitude;
center.longitude=Locate.location.coordinate.longitude;
//Span
MKCoordinateSpan span;
span.latitudeDelta=0.3f;
span.longitudeDelta=0.3f;
//Set Region
myRegion.center=center;
myRegion.span=span;
[_MyMap setRegion:myRegion animated:YES];
我还使用与之前相同的代码实现了didUpdateLocation
函数。
问题是当用户位置改变时(当用户移动时)屏幕会放大他但我不能移动屏幕,如果我尝试移动它会立即返回用户位置,所以我不能查看整个地图。
【问题讨论】:
在–locationManager:didUpdateLocations:
方法中,获得位置后,尝试stopUpdatingLocation
,或者避免每次收到回调时都运行缩放过程。
【参考方案1】:
要缩放地图,您必须更改区域值意味着中心和跨度。一旦看到这个Mapview Zoom
在我的情况下,当我点击特定按钮时,我使用这个来移动地图。
MKCoordinateSpan span = MKCoordinateSpanMake(30.5982f,0.0001f);
CLLocationCoordinate2D coordinate = 36, 90;
MKCoordinateRegion region = coordinate, span;
MKCoordinateRegion regionThatFits = [self.mapView regionThatFits:region];
[self.mapView setRegion:regionThatFits animated:YES];
【讨论】:
该应用可以完美缩放,但问题是除了当前用户位置之外,我无法将地图移动到任何地方。当我尝试移动地图时,它会立即返回用户当前位置。【参考方案2】:我通过添加 touchesMoved 函数解决了这个问题,并且我停止在这个函数中更新 Location。 解决了。
【讨论】:
以上是关于如何放大用户当前位置?的主要内容,如果未能解决你的问题,请参考以下文章