2010-02-11 134 views
4

我在iPhone上实现地图应用程序。我想让地图放大用户的当前位置。 我想根据精确度缩放(模拟地图应用程序的工作方式)。MKMapView:如何根据精度设置区域跨度?

进出口实现这种方法:

- (void)locationManager:(CLLocationManager *)manager 
didUpdateToLocation:(CLLocation *)newLocation 
fromLocation:(CLLocation *)oldLocation { 

我所面临的问题是,CLLocation为我提供了,这到底意味着米的属性horizo​​ntalAccuracy和verticalAccuracy,准确性。然而,到中心我用这个地图:立足horizo​​ntalAccuracy

MKCoordinateRegion region; 
MKCoordinateSpan span; 
region.center = newLocation.coordinate; 
span.latitudeDelta=.005; //THIS IS HARDCODED 
span.longitudeDelta=.005; //THIS IS HARDCODED 
region.span = span; 

[mapView setRegion:region animated:YES]; 

林寻找一种方式来计算latitudeDelta(以度表示)(以米为单位表示)。

它不需要是一个确切的转换(我不期待转换公式,这将需要相当一些计算,包括当前位置),只是一些aprox值。

任何想法?

谢谢。 Gonso

回答

12

无需做计算。只需使用MKCoordinateRegionMakeWithDistance()即可。

+0

应该标记为正确的答案。 – chakrit 2012-03-12 09:55:31

0

我使用下面的代码来设置要在MapView中显示的中心和跨度。它应该工作。

MKCoordinateRegion region = {{0,0},{.5,.5}}; 
region.center.latitude = doubleLattitude; //user defined 
region.center.longitude = doubleLongitude;//user defined 
[mapView setRegion:region animated:YES];