如何在SwiftUI的MapKit中隐藏默认兴趣点并应用配置?
解决SwiftUI Map隐藏默认标注的问题
你之前在init里创建的配置只是局部变量,并没有关联到Map视图,所以不会生效。要把配置应用到SwiftUI的Map,直接在Map的初始化方法中传入配置参数即可,具体修改如下:
import SwiftUI import MapKit @available(iOS 16.0, *) struct MyMapView: View { @State private var region = MKCoordinateRegion( center: CLLocationCoordinate2D( latitude: 41.59710, longitude: -74.14976), span: MKCoordinateSpan( latitudeDelta: 0.0125, longitudeDelta: 0.0125) ) var body: some View { // 创建配置并直接传入Map初始化器 let configuration = MKStandardMapConfiguration() configuration.pointOfInterestFilter = MKPointOfInterestFilter(including: []) Map(coordinateRegion: $region, configuration: configuration) .edgesIgnoringSafeArea(.all) .disabled(true) } }
另外还有更简洁的写法,直接用MKPointOfInterestFilter.excludingAll()隐藏所有POI标注,效果和including: []完全一致:
Map(coordinateRegion: $region) { // 在这里添加你的自定义标注 } configuration: { let config = MKStandardMapConfiguration() config.pointOfInterestFilter = .excludingAll() return config }
这样就能彻底隐藏Map视图的默认标注,之后你就可以在Map的content闭包中添加自定义标注了。
内容的提问来源于stack exchange,提问作者xdlol123
相关产品推荐
相关产品推荐

