SwiftUI—使用MapKit里的地图视图

简介: SwiftUI—使用MapKit里的地图视图

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) //使地图视图显示自定义的地理区域
    }
}


2466108-b5b7fc0f54860224.webp.jpg


目录
相关文章
|
前端开发 搜索推荐 定位技术
GIS前端—Popup标注视图
GIS前端—Popup标注视图
120 0
Cesium 获取当前视图范围
Cesium作为一个开源的WebGlobe解决方案已经很牛了,不过因为开发的资料不多,很多功能不知道怎么实现。下面记录下自己获取Cesium当前场景范围的方法(2维中对应的是extent)。   extent其实对我们有用的也就是左上角和右下角坐标,于是首先应该想办法实现的是获取场景左上角和右下角的经纬度坐标。
1599 0
SwiftUI—如何给图像视图添加遮罩以突出主题
SwiftUI—如何给图像视图添加遮罩以突出主题
702 0
SwiftUI—如何给图像视图添加遮罩以突出主题
|
API iOS开发
SwiftUI 中的自定义导航
默认情况下,SwiftUI提供的各种导航API在很大程度上是以用户直接输入为中心的——也就是说,导航是在系统响应例如按钮的点击和标签切换等事件时由系统本身处理的。
289 0
SwiftUI 中的自定义导航
SwiftUI极简教程04:VStack, HStack, ZStack视图排列的使用(下)
SwiftUI极简教程04:VStack, HStack, ZStack视图排列的使用(下)
724 1
SwiftUI极简教程04:VStack, HStack, ZStack视图排列的使用(下)
|
自然语言处理 iOS开发
SwiftUI极简教程03:VStack, HStack, ZStack视图排列的使用(上)
SwiftUI极简教程03:VStack, HStack, ZStack视图排列的使用(上)
1513 0
SwiftUI极简教程03:VStack, HStack, ZStack视图排列的使用(上)
SwiftUI—如何在PreviewProvider中使用导航视图
SwiftUI—如何在PreviewProvider中使用导航视图
416 0
SwiftUI—如何在PreviewProvider中使用导航视图
SwiftUI—如何给视图添加长按手势
SwiftUI—如何给视图添加长按手势
1021 0
SwiftUI—如何使一个视图同时支持多种的手势
SwiftUI—如何使一个视图同时支持多种的手势
289 0
SwiftUI—如何给视图添加单击手势
SwiftUI—如何给视图添加单击手势
278 0
SwiftUI—如何给视图添加单击手势