无法在MKMapView上设置缩放级别
我将MKCircleView
添加到用户注释中,如下所示:
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { if (!_MapCentered) { **_circle = [MKCircle circleWithCenterCoordinate:userLocation.coordinate radius:3000]; [_map_view addOverlay:_circle];** _MapCentered = YES; } }
它会发射一次,一旦用户位置追踪,它运作良好,但你可以看到圆视图的直径是3000米。 所以现在我想缩放级别适合CircleView
像这样:
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(mapView.userLocation.coordinate, 0.270, 0.270); [_map_view setRegion:viewRegion animated:YES];
我已经改变了三angular洲度其他数字,但没有任何改变。 我怎么能pipe理这个?
你需要设置你的跨度。 所以将您的跨度值设置为经度纬度或者纬度
yourRegion.span.longitudeDelta = 0.004; // set required zoom value yourRegion.span.latitudeDelta = 0.004; // set required zoom value
MKCoordinateRegionMakeWithDistance
函数中的距离参数为米 (而非度)。
另外,仪表指定了完整的宽度和高度,所以你必须使用圆的半径值的两倍。
所以它应该是:
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance (mapView.userLocation.coordinate, 6000, 6000);
您也可以将地图视图的visibleMapRect
设置为圆形覆盖的boundingMapRect
,以便不必重复距离值:
mapView.visibleMapRect = _circle.boundingMapRect;
对于Google的缩放级别,我使用这个类别 MKMapView
否则使用安娜的解决scheme