ios - 无法在 MKMapView 上设置缩放级别

标签 ios mkmapview core-location

我要添加 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 的 visibleMapRectboundingMapRect的圆圈覆盖,因此您不必重复距离值:
mapView.visibleMapRect = _circle.boundingMapRect;

关于ios - 无法在 MKMapView 上设置缩放级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20661899/

相关文章:

iOS 应用程序在没有链接必要框架的情况下工作

ios - startMonitoringSignificantLocationChanges 使用什么来传递位置

ios - 在 iOS 上升级应用程序时重置位置服务权限

ios - 将 Unity 嵌入 iOS 自己的 ViewController 中

ios - Swift 中的 parse.com - 是否可以将检索到的 PFObject 转换为子类?

ios - 使用 MKPolyline 在 MKMapView 中绘制多组线

快速将文本字段中的数据传递到 map View

iphone - 移动自定义注释以显示用户位置

ios - 将 robovm-ios-bindings 导入到 Eclipse

Swift 4.0 MapView 运行缓慢