MKMapView:如何根据准确度设置区域范围?

时间:2010-02-11 19:06:07

标签: iphone mkmapview

我在iPhone上实现地图应用程序。我希望地图放大用户的当前位置。 我想根据准确度(模拟地图应用程序的工作方式)进行缩放。

我实现了这个方法:

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

我面临的问题是CLLocation为我提供了属性horizo​​ntalAccuracy和verticalAccuracy的准确性,最终意味着米。但是,为了使地图居中,我使用它:

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];

我正在寻找一种基于horizo​​ntalAccuracy(以米为单位)计算latitudeDelta(以度为单位)的方法。

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

有什么想法吗?

感谢。 Gonso

2 个答案:

答案 0 :(得分:12)

无需进行计算。只需使用MKCoordinateRegionMakeWithDistance()

答案 1 :(得分: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];