美文网首页
SwiftUI—使用MapKit里的地图视图

SwiftUI—使用MapKit里的地图视图

作者: anny_4243 | 来源:发表于2020-07-14 09:39 被阅读0次

    原文链接:https://github.com/fzhlee/SwiftUI-Guide#-%E7%AC%AC29%E8%8A%82mapview-

    SwiftUI并没有包含MapView,这里通过遵循UIViewRepresentable协议,在SwiftUI中集成UIKit中的WKMapView。

    示例代码:

    import SwiftUI
    import MapKit
    
    struct ContentView : UIViewRepresentable {
        
        func makeUIView(context: UIViewRepresentableContext<ContentView>) -> MKMapView {
            return MKMapView()
        } //实现协议里的makeUIView方法用来返回一个MKMapView地图视图对象
        
        func updateUIView(_ uiView: MKMapView, context: UIViewRepresentableContext<ContentView>) { //实现协议里的updateUIView方法,用来设置地图视图需要加载的地理坐标等参数
            uiView.showsUserLocation = true //设置地图视图显示用户所在的地理位置
            uiView.mapType = MKMapType.satellite //设置地图类型为卫星模式
            /*
    设置地图的类型(mapType)
            case standard :普通地图(默认)
            case satellite : 卫星云图
            case hybrid : 混合地图(卫星云图的基础上加上普通地图)
            @available(iOS 9.0, *)
            case satelliteFlyover :3D卫星地图 // 做适配
            case hybridFlyover :3D混合卫星地图(3D卫星地图 + 普通地图) // 做适配
            case mutedStandard :  一种强调开发人员数据的地图显示模式
    */
            let coordinate2D = CLLocationCoordinate2D(latitude: 39.915352, longitude: 116.397105) //初始化一个二维坐标,并设置经度纬度的值
            let zoomLevel = 0.02 //设置地图视图的缩放比例为0.02
            let region = MKCoordinateRegion(center: coordinate2D, span: MKCoordinateSpan(latitudeDelta: zoomLevel, longitudeDelta: zoomLevel)) //初始化一个坐标区域对象,作为地图视图所要显示的地理区域
            uiView.setRegion(uiView.regionThatFits(region), animated: true) //使地图视图显示自定义的地理区域
        }
    }
    

    相关文章

      网友评论

          本文标题:SwiftUI—使用MapKit里的地图视图

          本文链接:https://www.haomeiwen.com/subject/fzyzcktx.html