我有一个带有一个 pin 和用户位置的 mapView。我已经做到了,所以VisibleMapRect
设置了两个引脚都可以看到。
我遇到的问题是我MKUserTrackingModeFollowWithHeading
用来向用户展示移动动作,当我像这样设置矩形时,动作非常生涩。我相信这是因为用户位置图钉不在地图的中心。
如何让两个图钉都可见但将用户位置保持在中心?
这是我的代码,它开始位置并设置矩形。[locationManager startUpdatingLocation];
// Start heading updates.
if ([CLLocationManager headingAvailable]) {
locationManager.headingFilter = kCLHeadingFilterNone;
[locationManager startUpdatingHeading];
//set the view to fit both the pins
MKMapPoint annotationPoint = MKMapPointForCoordinate(MapView.userLocation.coordinate);
MKMapRect zoomRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0, 0);
for (id <MKAnnotation> annotation in MapView.annotations)
{
if (![annotation isKindOfClass:[MKUserLocation class]] ) {
MKMapPoint annotationPoint = MKMapPointForCoordinate(annotation.coordinate);
MKMapRect pointRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0, 0);
zoomRect = MKMapRectUnion(zoomRect, pointRect);
}
}
NSLog(@"%f",zoomRect.size.height);
NSLog(@"%f",zoomRect.size.width);
[MapView setVisibleMapRect:zoomRect animated:NO];
}
我已经尝试注释掉设置矩形的部分并且用户的移动是平滑的,所以我可以告诉我的问题是这段代码。
我也尝试在使用矩形后设置中心点
[MapView setCenterCoordinate:MapView.userLocation.coordinate animated:YES];
这似乎不起作用。也可以在之后设置它,以便不再显示另一个引脚。