【问题标题】:MKMapView: How to set the region span based on the Accuracy?MKMapView:如何根据精度设置区域跨度?
【发布时间】:2010-02-11 19:06:06
【问题描述】:

我正在 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];

我正在寻找一种基于水平精度(以米表示)计算 latitudeDelta(以度表示)的方法。

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

有什么想法吗?

谢谢。 贡索

【问题讨论】:

    标签: iphone mkmapview


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-21
        • 1970-01-01
        相关资源
        最近更新 更多