我要添加 MKCircleView
像这样给用户注释:
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
if (!_MapCentered) {
**_circle = [MKCircle circleWithCenterCoordinate:userLocation.coordinate radius:3000];
[_map_view addOverlay:_circle];**
_MapCentered = YES;
}
}
它会触发一次,一旦用户位置被追踪,它工作得很好,但是你可以看到圆形 View 的直径是 3000 米。所以现在我希望缩放级别适合
CircleView
像这样: MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(mapView.userLocation.coordinate, 0.270, 0.270);
[_map_view setRegion:viewRegion animated:YES];
我已将 delta 度更改为其他数字,但没有任何改变。
我该如何管理?
最佳答案
MKCoordinateRegionMakeWithDistance
中的距离参数函数以米为单位(不是度数)。
此外,米指定了完整的宽度和高度,因此您必须使用圆半径值的两倍。
所以应该是:
MKCoordinateRegion viewRegion =
MKCoordinateRegionMakeWithDistance
(mapView.userLocation.coordinate, 6000, 6000);
您也可以只设置 map View 的
visibleMapRect
到boundingMapRect
的圆圈覆盖,因此您不必重复距离值:mapView.visibleMapRect = _circle.boundingMapRect;
关于ios - 无法在 MKMapView 上设置缩放级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20661899/