[Swift UI]二、实用控件,9在SwiftUI中使用MapKit里的地图视图

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

➤微信公众号:山青咏芝(let_us_code)

➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/

➤GitHub地址:https://github.com/strengthen/LeetCode

➤原文地址:https:////www.cnblogs.com/strengthen/p/12292877.html

➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

SwiftUI没有提供地图视图,所以需要借助于MapKit里的地图视图。

 1 import SwiftUI
 2 //首先倒入需要使用到的地图框架
 3 import MapKit
 4 
 5 //使当前的结构体遵循UIViewRepresentable(视图替代)协议,
 6 //使用该协议的实例,可以在SwiftUI中创建和管理UIView对象。
 7 struct ContentView : UIViewRepresentable
 8 {
 9     //实现协议里的创建视图makeUIView方法,用来初始化并返回一个MKMapView地图视图对象。
10     func makeUIView(context: UIViewRepresentableContext<ContentView>) -> MKMapView
11     {
12         return MKMapView()
13     }
14     
15     //实现协议里的更新视图updateUIView方法,用来设置网页视图需要加载的网址参数。
16     func updateUIView(_ uiView: MKMapView, context: UIViewRepresentableContext<ContentView>)
17     {
18         //设置地图视图显示用户所在的地理位置
19         uiView.showsUserLocation = true
20         //并设置地图类型为卫星模式
21         uiView.mapType = MKMapType.satellite
22         
23         //初始化一个二维坐标,并设置经纬度的数值。
24         let coordinate2D = CLLocationCoordinate2D(latitude: 39.915352, longitude: 116.397105)
25         //设置地图视图的缩放比例为0.02
26         let zoomLevel = 0.02
27         //初始化一个坐标区域对象,作为地图视图所要显示的地理区域。
28         let region = MKCoordinateRegion(center: coordinate2D, span: MKCoordinateSpan(latitudeDelta: zoomLevel, longitudeDelta: zoomLevel))
29         
30         //使地图视图显示自定义的地理区域
31         uiView.setRegion(uiView.regionThatFits(region), animated: true)
32     }
33 }
34 
35 #if DEBUG
36 struct ContentView_Previews : PreviewProvider {
37     
38     static var previews: some View {
39         ContentView()
40     }
41 }
42 #endif