1

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

有什么方法可以做到这一点吗?

4

2 回答 2

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;
}];
于 2015-03-19T15:32:19.783 回答
0

MKMapView有财产mapType。将此属性设置为MKMapType.Satellite

可能的类型有:

  • 标准
  • 卫星
  • 杂交种

请参阅MKMapView 类参考中的 mapType

于 2015-03-19T14:05:15.363 回答