如何像Apple Map应用程序一样获取MapKit位置的卫星图像?

时间:2015-03-19 13:36:47

标签: ios objective-c swift mapkit mapkitannotation

在我的应用程序中,我有一个带自动完成功能的MapView。当用户选择某个地方时,我会使用details按钮在地图视图上显示一个图钉。然后我想要显示与Apple的地图应用程序相同的地方的静态卫星图像。

我有办法做到这一点吗?

2 个答案:

答案 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

可能的类型是:

  • 标准
  • 卫星
  • 混合

请参阅mapType in MKMapView Class Reference