Применение перспективного преобразования к MKMapView - PullRequest
3 голосов
/ 06 февраля 2012

Я пытаюсь применить перспективное преобразование к 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, т. Е. Только наклону карты без перспективы, она будет работать нормально.

Есть ли способ получить улицу?карта уровня с перспективой?

1 Ответ

2 голосов
/ 14 февраля 2012

Мне удалось получить перспективу, добавив

[map.layer setShouldRasterize:YES];

Таким образом, очевидно, что существует проблема с прямым отображением содержимого карты при применении перспективы.

...