GitHub Twitter: @lukeeep_

LPMapView

📖 查看完整文档 这里

一个 SwiftUI 封装,用于 MKMapView

概述

相比 SwiftUI.Map,它提供了一些额外的功能。

用法 (iOS 16)

@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

以上示例用法将呈现一个类似于这样的地图视图

map-preview

用法 (iOS 14 & 15)

@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

修饰符

有一些修饰符可用于配置地图视图的附加选项。

mapDisplayRoute

声明

func mapDisplayRoute(
  _ visibility: MapViewVisibility = .visible
) -> some View

参数


mapRouteStyle

声明

func mapRouteStyle(_ style: MapRouteStyle) -> some View

参数


mapAnnotations

声明

func mapAnnotations(
  _ visibility: MapViewVisibility = .visible, 
  tint: Color = .red, 
  calloutEnabled: Bool = false, 
  fitInVisibleRect: Bool = false,
  animated: Bool = true
) -> some View

参数


mapConfiguration

声明

func mapConfiguration(
  _ configuration: MapViewConfiguration, 
  elevationStyle: MKMapConfiguration.ElevationStyle = .flat, // iOS 16 only
  poiFilter: MKPointOfInterestFilter = .includingAll,
  selectableFeatures: MKMapFeatureOptions = [] // iOS 16 only
) -> some View

参数


mapUserInteraction

声明

func mapUserInteraction(
  zoom: Bool = true, 
  scroll: Bool = true, 
  pitch: Bool = true, 
  rotate: Bool = true
) -> some View

参数


Buy Me A Coffee