or *_*ran 1 core-location mkmapview ios
我正在添加MKCircleView用户注释,如下所示:
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
if (!_MapCentered) {
**_circle = [MKCircle circleWithCenterCoordinate:userLocation.coordinate radius:3000];
[_map_view addOverlay:_circle];**
_MapCentered = YES;
}
}
Run Code Online (Sandbox Code Playgroud)
它将触发一次,一旦用户位置跟踪,它运行良好,但你可以看到圆形视图的直径是3000米.所以现在我希望缩放级别适合CircleView这样:
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(mapView.userLocation.coordinate, 0.270, 0.270);
[_map_view setRegion:viewRegion animated:YES];
Run Code Online (Sandbox Code Playgroud)
我已将delta度数更改为其他数字,但没有任何改变.我怎么能管理这个?
小智 5
MKCoordinateRegionMakeWithDistance函数中的距离参数以米为单位(不是度数).
此外,仪表指定全宽和高度,因此您必须使用圆的半径值的两倍.
所以它应该是:
MKCoordinateRegion viewRegion =
MKCoordinateRegionMakeWithDistance
(mapView.userLocation.coordinate, 6000, 6000);
Run Code Online (Sandbox Code Playgroud)
你也可以只设置地图视图的visibleMapRect到boundingMapRect圆重叠的,所以你不必重复距离值:
mapView.visibleMapRect = _circle.boundingMapRect;
Run Code Online (Sandbox Code Playgroud)