📖 查看完整文档 这里。
一个 SwiftUI 封装,用于 MKMapView
。
相比 SwiftUI.Map
,它提供了一些额外的功能。
@State private var coordinateRegion: MKCoordinateRegion = ...
@State private var items: [MapViewAnnotation] = ...
MapView(
region: $coordinateRegion,
showsUserLocation: false,
userTrackingMode: .none,
annotations: $items
)
.mapDisplayRoute() // connect annotations with lines
.mapRouteStyle(.dashed(5, tint: .red) // Use a dashed line
.mapAnnotations(.visible, tint: .mint) // show annotations with custom tint
.mapConfiguration(.hybrid) // use the hybrid map style
以上示例用法将呈现一个类似于这样的地图视图
@State private var coordinateRegion: MKCoordinateRegion = ...
@State private var items: [MapViewAnnotation] = ...
LMapView(
region: $coordinateRegion,
showsUserLocation: false,
userTrackingMode: .none,
annotations: $items
)
.mapDisplayRoute() // connect annotations with lines
.mapRouteStyle(.dashed(5, tint: .red) // Use a dashed line
.mapAnnotations(.visible, tint: .mint) // show annotations with custom tint
.mapConfiguration(.hybrid) // use the hybrid map style
有一些修饰符可用于配置地图视图的附加选项。
func mapDisplayRoute(
_ visibility: MapViewVisibility = .visible
) -> some View
visibility
: 路线是否可见。func mapRouteStyle(_ style: MapRouteStyle) -> some View
style
: 要使用的路线线条样式。func mapAnnotations(
_ visibility: MapViewVisibility = .visible,
tint: Color = .red,
calloutEnabled: Bool = false,
fitInVisibleRect: Bool = false,
animated: Bool = true
) -> some View
visibility
: 注释是否可见。tint
: 注释的默认着色颜色。这可以通过在 MapViewAnnotation
上设置 MapViewAnnotation/tint
来覆盖。calloutEnabled
: 选择注释时是否显示详细标注。请注意,这仅在注释具有标题时才有效。fitInVisibleRect
: 是否自动调整地图缩放以适应所有注释。animated
: 是否动画显示更改。func mapConfiguration(
_ configuration: MapViewConfiguration,
elevationStyle: MKMapConfiguration.ElevationStyle = .flat, // iOS 16 only
poiFilter: MKPointOfInterestFilter = .includingAll,
selectableFeatures: MKMapFeatureOptions = [] // iOS 16 only
) -> some View
configuration
: 定义地图样式的配置选项。elevationStyle
: 定义渲染地图视图时如何处理海拔数据。poiFilter
: 一个过滤器,用于在地图视图、本地搜索或本地搜索完成器中包含或排除兴趣点类别。selectableFeatures
: 描述地图响应哪些可选择的要素。func mapUserInteraction(
zoom: Bool = true,
scroll: Bool = true,
pitch: Bool = true,
rotate: Bool = true
) -> some View
zoom
: 一个布尔值,确定用户是否可以使用捏合手势来放大和缩小地图。scroll
: 一个布尔值,确定用户是否可以滚动浏览地图。pitch
: 一个布尔值,指示地图是否使用相机的俯仰信息。rotate
: 一个布尔值,指示地图是否使用相机的朝向信息。