MapView17 Mar 2025 | 5 分钟阅读 MapView 是一个对象,可以在 iOS 应用程序中显示可嵌入的地图界面。 它与 Maps 应用程序提供的类似。 它是 MKMapView 类的一个实例,该类继承自 UIView 类。 为了在 iOS 应用程序中显示地图视图,我们需要在对象库中搜索 MKMapView,并将结果拖动到情节提要,如下图所示。  但是,如果我们将地图视图添加到界面,定义地图视图的自动布局规则并运行应用程序,模拟器将显示下图所示的输出。  要在 iOS 应用程序中使用 MapView,我们必须导入 MapKit,因为 MKMapView 存在于 iOS MapKit 中。 MapKit 是一个强大的 API,适用于 iOS 设备,通过它我们可以显示位置、显示路线、形状以及更多地理内容。 通过使用 MapKit 中存在的属性和方法,我们可以放大到特定位置,将地图居中于指定的坐标,指定我们要显示的区域大小,并使用自定义位置注释地图。 我们可以使用 region 属性初始化地图视图,以指定地图的特定区域。 区域是由水平和垂直距离定义的中心点,称为跨度。 跨度定义了地图的可见性。 例如,指定大跨度会导致在低缩放级别显示较宽的地理区域。 MapView 示例 1:在地图中设置初始区域 在本例中,我们将设置地图视图的初始区域。 为此,我们需要通过实例化 CLLocation 类来创建一个位置对象。 可以使用以下语法创建位置对象。 此方法接受两个参数,即特定位置的纬度和经度。 在 MapKit 中,我们纬度和经度是 CLLocationDegrees 类的实例。 ViewController.swift 输出  在地图上显示艺术作品MapKit 方便我们显示地图中心位置的艺术作品。 要在地图视图上显示此内容,我们必须创建一个地图注释。 地图注释被定义为为特定位置显示的小信息片段。 Apple 地图上的注释由小图钉表示。 在本例中,我们将为地图的中心位置创建注释。 要创建注释,我们必须创建一个符合 MKAnnotation 协议的类。 ArtWork.swift 类符合 MKAnnotation 协议,然后将其添加到 ViewController.swift 类中的 Map 中。 ArtWork.swift ViewController.swift 输出  MKMapView 属性MKMapView 类中定义的属性在下表中给出。 | 序号 | 属性 | 描述 |
|---|
| 1 | var delegate: MKMapViewDelegate? | 它是类型为 MKMapViewDelegate 协议的接收器的代理。 | | 2 | var mapType: MKMapType | 它是地图视图显示的数据类型。 | | 3 | var isZoomEnabled: Bool | 它是一个布尔类型的值,指示是否为地图视图启用了缩放。 | | 4 | var isScrollEnabled: Bool | 它是一个布尔类型的值,指示是否为地图视图启用了滚动。 | | 5 | var isPitchEnabled: Bool | 它是一个布尔类型的值,指示是否使用地图相机的倾斜信息。 | | 6 | var isRotateEnabled: Bool | 它是一个布尔类型的值,指示是否使用地图相机的航向信息。 | | 7 | var region: MKCoordinateRegion | 它是地图显示的初始区域。 | | 8 | var centerCoordinate: CLLocationCoordinate2D | 要由地图中心显示的坐标。 | | 9 | var visibleMapRect: MKMapRect | 它是地图视图当前显示的区域。 | | 10 | var cameraBoundary: MKMapView.CameraBoundary? | 它表示 mapView 中心必须保持在其中的区域边界。 | | 11 | var cameraZoomRange: MKMapView.CameraZoomRange! | 它表示地图相机的缩放范围。 | | 12 | var camera: MKMapCamera | 它表示用于确定地图外观的相机。 | | 13 | var pointOfInterestFilter: MKPointOfInterestFilter? | 它表示用于确定地图上显示的兴趣点的过滤器。 | | 14 | var showsBuildings: Bool | 它是表示是否显示建筑物信息的布尔值。 | | 15 | var showsCompass: Bool | 它是指示地图是否显示指南针控件的布尔值。 | | 16 | var showsZoomControls: Bool | 它是指示地图是否显示缩放控件的布尔值。 | | 17 | var showsScale: Bool | 它是指示地图是否显示比例信息的布尔值。 | | 18 | var showsTraffic: Bool | 它是一个布尔值,指示是否显示交通信息。 | | 19 | var showsUserLocation: Bool | 它是一个布尔值,指示地图是否应尝试显示用户的位置。 | | 20 | var isUserLocationVisible: Bool | 它是一个布尔值,指示用户的当前位置是否显示在地图视图上。 | | 21 | var userLocation: MKUserLocation | 它表示用户的当前位置。 | | 22 | var userTrackingMode: MKUserTrackingMode | 它表示用于跟踪用户当前位置的模式。 | | 23 | var annotations: [MKAnnotation] | 它是不同地图中心位置的注释数组。 | | 24 | var annotationVisibleRect: CGRect | 它表示当前正在显示注释视图的可见矩形。 | | 25 | var selectedAnnotations: [MKAnnotation] | 它表示当前正在选择的注释。 | | 28 | var overlays: [MKOverlay] | 它表示当前与地图视图关联的覆盖对象。 |
|