在我的应用程序中,我有一个带自动完成功能的MapView。当用户选择某个地方时,我会使用details
按钮在地图视图上显示一个图钉。然后我想要显示与Apple的地图应用程序相同的地方的静态卫星图像。
我有办法做到这一点吗?
答案 0 :(得分:3)
如果您想在MapView
上创建所选地点的静态图片,可以将MKMapSnaphotter类用于卫星地图类型。单击详细信息按钮时,将MKSnapshotOptions传递给详细视图控制器,如下所示:
MKMapSnapshotOptions *options = [MKMapSnapshotOptions new];
options.region = mapView.region;
options.size = mapView.frame.size;
options.mapType = MKMapTypeSatellite;
options.showsBuildings = YES;
options.scale = [[UIScreen mainScreen] scale];
detailViewController.options = options;
然后在您的详细视图中,控制器创建一个快照图像并显示如下:
MKMapSnapshotter *snapshotter = [[MKMapSnapshotter alloc] initWithOptions:self.options];
[snapshotter startWithCompletionHandler:^(MKMapSnapshot *snapshot, NSError *error) {
if (error) return; //And show error message;
imageView.image = snapshot.image;
}];
答案 1 :(得分:0)
MKMapView
有一个属性mapType
。将此属性设置为MKMapType.Satellite
。
可能的类型是: