我在iPhone上实现地图应用程序。我希望地图放大用户的当前位置。 我想根据准确度(模拟地图应用程序的工作方式)进行缩放。
我实现了这个方法:
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation {
我面临的问题是CLLocation为我提供了属性horizontalAccuracy和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];
我正在寻找一种基于horizontalAccuracy(以米为单位)计算latitudeDelta(以度为单位)的方法。
它不需要是精确的转换(我不期待转换公式,这将需要相当多的计算,包括当前位置),只是一些aprox值。
有什么想法吗?
感谢。 Gonso
答案 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];