To rotate the mapView but not the annotations you could use the following code to compensate for the maps rotation. - (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading { double rotation = newHeading.magneticHeading * 3.14159 / 180; CGPoint anchorPoint = CGPointMake(0, -23); // The anchor point for your pin [mapView setTransform:CGAffineTransformMakeRotatio