IBAction 显示纬度和经度(swift)

Posted

技术标签:

【中文标题】IBAction 显示纬度和经度(swift)【英文标题】:IBAction to display latitude and longitude (swift) 【发布时间】:2016-11-28 23:41:59 【问题描述】:

我有获取用户位置的代码。我希望用户能够按下按钮并在屏幕上查看他们的坐标。我该怎么做,因为我不能直接为按钮功能调用 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)

【问题讨论】:

您的代码是否正在编译?将 myLat 和 myLong 声明为全局变量。 【参考方案1】:

由于您的 locationManager 变量 myLat 和 myLong 是该函数的本地,因此只需声明两个全局变量,(a) 由 locationManager 设置,(b) 然后由 IBAction 函数提取。

【讨论】:

我已经在全局范围内设置了它们,但是当它们被调用为 IBAction 时,它们只显示为 0.0。我已将它们全局声明为 var myLat = CLLocationDegrees() 和 var myLong = CLLocationDegrees()。为什么它们显示为 0.0 而不是实际坐标? 按照如何调试的顺序,(1) 设置两个断点,一个在您填充全局变量之后,一个在您的 IBAction 中,(2) 确保您正确填充内容 - 我我猜你是。如果是这样,那么您可能需要进行更好的类型转换——0.05 实际上可以显示为 0.0!看看这个线程如何格式化:[link]***.com/questions/24051314/…【参考方案2】:

在函数外部声明 myLatmyLong。您可以在 locationManager() 中更新这些值,这些值可以在标签中使用。

【讨论】:

以上是关于IBAction 显示纬度和经度(swift)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 CLLocationManager-Swift 获取当前的经度和纬度

Swift:使用纬度/经度时坐标不准确

UILabel 上显示的纬度和经度

Swift:获取用户的位置坐标为纬度和经度?

我可以得到纬度和经度,但我无法在 SWIFT 中访问 GPS 高度信息

如何在swift ios中从移动网络获取纬度和经度[关闭]