Я размещаю пользовательские маркеры на своей карте в iOS, и у меня возникает проблема, заключающаяся в том, что когда пользователь сжимает для увеличения и уменьшения масштаба, маркеры не привязываются к тому месту, где должны. Вот код, который добавляет маркеры ...
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
if ([annotation isKindOfClass:[MKUserLocation class]])
return nil;
MarkerVO *thisMarker = (MarkerVO*)annotation;
MKAnnotationView *pin = (MKAnnotationView *) [map dequeueReusableAnnotationViewWithIdentifier:[thisMarker commaSeparatedCoordinate]];
if (!pin) {
pin = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:[thisMarker commaSeparatedCoordinate]] autorelease];
[pin setImage:[UIImage imageNamed:@"pin_tick.png"]];
[pin setCenterOffset:CGPointMake(0, -23)];
[pin setCanShowCallout:YES];
}
return pin;
}
Так что да, тиковый маркер отображается нормально, но при увеличении он просто перемещается. Например, он может быть прямо на месте при близком увеличении, но при уменьшении масштаба он оказывается в море! Я понимаю, почему это происходит, но даже без строки setCenterOffset это все еще происходит.
Любые идеи были бы великолепны.