Я показываю местоположение пользователя в MKMapView.Я не хочу синий кружок по умолчанию, но вместо этого красный вывод.
Поэтому я реализовал mapView: viewForAnnotation: и сделал так, чтобы он всегда возвращал красный вывод, так как местоположение пользователя - единственный вывод, который я покажу на карте.view.
При использовании синего круга по умолчанию местоположение достаточно точное, но при переходе на красный штифт оно довольно много.Это как если бы красный штифт был точно сброшен, а затем перемещен вверх, чтобы он больше не отображал мою текущую позицию.
Это мой код:
- (MKAnnotationView *)mapView:(MKMapView *)_mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
NSLog(@"MapView: Annotation.");
MKPinAnnotationView *pin = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil];
[pin setPinColor:MKPinAnnotationColorRed];
[pin setAnimatesDrop:YES];
[pin setCanShowCallout:NO];
return pin;
}
Я использую mapView: didAddAnnotationViews:центрировать вид карты по моему текущему местоположению.
- (void)mapView:(MKMapView *)_mapView didAddAnnotationViews:(NSArray *)views
{
for(MKAnnotationView *annotationView in views)
{
if(annotationView.annotation == _mapView.userLocation)
{
MKCoordinateRegion region;
MKCoordinateSpan span;
span.latitudeDelta = 0.20;
span.longitudeDelta = 0.20;
CLLocationCoordinate2D location = [[_mapView userLocation] coordinate];
region.span = span;
region.center = location;
[_mapView setRegion:region animated:YES];
[_mapView regionThatFits:region];
}
}
}
Кто-нибудь знает, почему моя аннотация больше не помещается правильно при использовании красного штифта вместо вида аннотации по умолчанию?