MKMapView不会滚动,也不会缩放

时间:2012-11-07 09:51:32

标签: ios scroll mkmapview zooming mkmapviewdelegate

我有一个MapView并标记了用户位置的位置,附近还有其他有关旅游景点的各种类型的注释视图。我希望MapView可以滚动和缩放以查看城市的所有注释视图,但是当我移动时,MapView会立即返回中心拍摄,看起来很难看。

这是MapViewController.m中的代码

 - (void)viewDidLoad{

        //.....

   self.mapView.zoomEnabled=YES;
   self.mapView.scrollEnabled = YES;

      //......
  }


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

      //......
  self.coordinate = CLLocationCoordinate2DMake(self.latitudine, self.longitudine);
  CLLocationCoordinate2D min = CLLocationCoordinate2DMake(self.coordinate.latitude -0.005,
       self.coordinate.longitude-0.005);

 CLLocationCoordinate2D max = CLLocationCoordinate2DMake(self.coordinate.latitude+0.005,
       self.coordinate.longitude+0.005);

 CLLocationCoordinate2D center = CLLocationCoordinate2DMake((max.latitude + min.latitude)
       / 2.0, (max.longitude + min.longitude) / 2.0);
 MKCoordinateSpan span = MKCoordinateSpanMake(max.latitude - min.latitude, max.longitude -
      min.longitude);
 MKCoordinateRegion region = MKCoordinateRegionMake(center, span);

 self.mapView.region= region;

  [mapView setRegion:region animated:TRUE];

     //......

 }

2 个答案:

答案 0 :(得分:2)

我认为这是因为不断调用更新,所以它会一直使用mapview setregion位将屏幕居中。

当您宣布您的locationManager时,请务必设置灵敏度。

self.locationManager.distanceFilter = 10.0f;

如果更新超过10米,则只会调用更新。

答案 1 :(得分:0)

每当设备注意到它已改变位置时,您将地图缩放为self.latitudine和self.longitudine。在您显示的代码中,您没有将这些值设置为任何新值。你的意思是放大newLocation坐标吗?