如何解决使用扩展名将用户位置存储在可用变量中
我有一个扩展名,该扩展名是使用LocationManager
创建的,用于将用户位置存储在要在Swiftui Map()
和我的扩展名中使用的变量中。我注意到,当我初始化变量时,扩展名需要同时使用lat和long,而我只需要userLat即可。
latitude: userLocation.init(userLat: <#Double#>,userLong: <#Double#>).self.userLat,
struct ContentView_v2: View {
// MARK: Get current location
class userLocation {
let locationManager = LocationManager()
var userLat: Double
var userLong: Double
init(userLat: Double,userLong: Double){
self.userLat = locationManager.lastLocation?.coordinate.latitude ?? 0.0
self.userLong = locationManager.lastLocation?.coordinate.longitude ?? 0.0
}
}
@State private var region = MKCoordinateRegion(
center: CLLocationCoordinate2D(
latitude: userLocation.init(userLat: <#Double#>,longitude: userLocation.init(userLat: <#Double#>,userLong: <#Double#>).self.userLong
),span: MKCoordinateSpan(
latitudeDelta: 0.01,longitudeDelta: 0.01
)
)
var body: some View {
Map(
coordinateRegion: $region,interactionModes: MapInteractionModes.all,showsUserLocation: true,userTrackingMode: $userTrackingMode,annotationItems: yelpbusinessmapdata?.businesses ?? []
)
{ business in
MapAnnotation(
coordinate:
business.coordinates.coordinate2D,anchorPoint: CGPoint(x: 0.5,y: 0.5)
){
vstack {
Image(systemName: "mappin")
.font(.system(size: 18,weight: .medium))
.foregroundColor(.red)
Text(business.name)
}
}
}
解决方法
如果我正确理解了您的代码,则可能您需要以下内容...
class userLocation {
let locationManager = LocationManager()
var userLat: Double
var userLong: Double
init(){
self.userLat = locationManager.lastLocation?.coordinate.latitude ?? 0.0
self.userLong = locationManager.lastLocation?.coordinate.longitude ?? 0.0
}
}
@State private var region = MKCoordinateRegion(
center: CLLocationCoordinate2D(
latitude: userLocation().userLat,longitude: userLocation().userLong
),
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。