У меня есть изображение, которое показывает, какой путь север на карте. Это изображение обновляется CoreLocation, если найден новый заголовок. Он также находится в правильном положении, я использую следующий код:
locateMeView.transform = CGAffineTransformMakeRotation(([CoreLocationController sharedInstance].heading - 45) * M_PI / 180);
CGRect frame = locateMeView.frame;
CGPoint pos = [MapClass vectorForLocation:[CoreLocationController sharedInstance].location mapCenter:curLocation zoom:curZoom];
frame.origin.x = (int)(self.view.bounds.size.width/2 + pos.x - frame.size.width / 2);
frame.origin.y = (int)(self.view.bounds.size.height/2 + pos.y - frame.size.height / 2);
frame.size.width = 24;
frame.size.height = 24;
locateMeView.frame = frame;
CoreLocationController - это класс, в котором хранятся обновления обычного CoreLocation. MapClass преобразует координаты широты / долготы в координаты х / у на моей карте. Положение изображения правильное, но поворот вызывает странные эффекты. Для 0 и M_PI изображение правильное, но между ними изображение растягивается, как если бы оно также вращалось вокруг оси z, а при M_PI / 2 и 3 * M_PI / 2 оно полностью исчезает. Может кто-нибудь объяснить, что происходит и что я делаю неправильно?