我正在尝试将透视转换应用于MKMapView
. 我正在关注这个 Stackoverflow question的示例,所以我的代码看起来像这样(插入到视图控制器的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
,即只倾斜地图而没有透视,它就可以正常工作。
有没有办法获得带有透视的街道地图?