Я пытаюсь применить перспективное преобразование к MKMapView
.Я следую примеру этого вопроса Stackoverflow , поэтому мой код выглядит следующим образом (вставлен в метод viewDidLoad
контроллера представления):
MKMapView *map = [[MKMapView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 480.0)];
[self.view addSubview:map];
CLLocationDistance distance = 2000000.0;
CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(52.5, 13.4);
[map setRegion:MKCoordinateRegionMakeWithDistance(coordinate, distance, distance)];
CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0 / -1200.0;
transform = CATransform3DRotate(transform, M_PI_4, 1.0, 0.0, 0.0);
map.layer.transform = transform;
Этот код, как написано, работаетхорошо, я получаю карту Европы с примененной перспективой.Проблема в том, что если я уменьшу переменную distance
, чтобы получить более близкий вид, или даже увеличу масштаб из этого рабочего начального состояния, карта не будет увеличиваться должным образом, она просто масштабирует карту, как она была в уменьшенном состоянии.,С другой стороны, если я не установлю в поле m34
значение transform
, т. Е. Только наклону карты без перспективы, она будет работать нормально.
Есть ли способ получить улицу?карта уровня с перспективой?