显示纬度和经度的 IBAction (swift)
IBAction to display latitude and longitude (swift)
我有获取用户位置的代码。我希望用户能够按下按钮并在屏幕上看到他们的坐标。我该怎么做,因为我不能直接为按钮功能调用 myLat 或 MyLong,因为它是一个位置管理器功能。为什么这段代码不起作用?
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
// get most recient coordinate
let myCoor = locations[locations.count - 1]
//get lat & long
var myLat = myCoor.coordinate.latitude
let myLong = myCoor.coordinate.longitude
let myCoor2D = CLLocationCoordinate2D(latitude: myLat, longitude: myLong)
//set span
let myLatDelta = 0.05
let myLongDelta = 0.05
let mySpan = MKCoordinateSpan(latitudeDelta: myLatDelta, longitudeDelta: myLongDelta)
let myRegion = MKCoordinateRegion(center: myCoor2D, span: mySpan)
self.LocationManager.stopUpdatingLocation()
}
@IBAction func coo(sender: AnyObject) {
self.coolat.text! = String(myLat)
self.coolong.text! = String(myLong)
}
由于您的 locationManager 变量 myLat 和 myLong 是该函数的局部仅,只需声明两个全局变量,(a) 由 locationManager 设置,(b) 然后由IBAction 函数。
在函数外声明 myLat 和 myLong。您可以在 locationManager() 中更新这些值,这些值可用于标签。
我有获取用户位置的代码。我希望用户能够按下按钮并在屏幕上看到他们的坐标。我该怎么做,因为我不能直接为按钮功能调用 myLat 或 MyLong,因为它是一个位置管理器功能。为什么这段代码不起作用?
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
// get most recient coordinate
let myCoor = locations[locations.count - 1]
//get lat & long
var myLat = myCoor.coordinate.latitude
let myLong = myCoor.coordinate.longitude
let myCoor2D = CLLocationCoordinate2D(latitude: myLat, longitude: myLong)
//set span
let myLatDelta = 0.05
let myLongDelta = 0.05
let mySpan = MKCoordinateSpan(latitudeDelta: myLatDelta, longitudeDelta: myLongDelta)
let myRegion = MKCoordinateRegion(center: myCoor2D, span: mySpan)
self.LocationManager.stopUpdatingLocation()
}
@IBAction func coo(sender: AnyObject) {
self.coolat.text! = String(myLat)
self.coolong.text! = String(myLong)
}
由于您的 locationManager 变量 myLat 和 myLong 是该函数的局部仅,只需声明两个全局变量,(a) 由 locationManager 设置,(b) 然后由IBAction 函数。
在函数外声明 myLat 和 myLong。您可以在 locationManager() 中更新这些值,这些值可用于标签。