2016-06-15 3 views
0

Я просмотрел interwebs и stackoverflow, и я не могу найти решение моей проблемы.iOS & Swift: расстояние дисплея от текущего местоположения?

Я пытаю:

  1. Получить текущее местоположение пользователя (лат & длинный)
  2. Вычислить расстояние между текущим местоположением пользователя и другое место (лат & длинной), который я поставил внутренне

До сих пор я мог бы выполнить это, если бы вручную установил свое текущее местоположение, но я не знаю ed для обновления.

У меня был успех, когда я возвращал свое текущее местоположение (я установил его как штаб-квартиру Apple в симуляторе) в журнале, но не смог добиться успеха в реальном приложении или симуляторе.

Вот что у меня есть:

import UIKit 
import CoreLocation 
import MapKit 

class ViewController: UITableViewController, CLLocationManagerDelegate, MKMapViewDelegate { 




override func prefersStatusBarHidden() -> Bool { 
    return true 
} 


var shops = [coffeeShop]() 

var locationManager = CLLocationManager() 


override func viewDidLoad() { 
    super.viewDidLoad() 



    // Ask for Authorisation from the User. 
    self.locationManager.requestAlwaysAuthorization() 

    // For use in foreground 
    self.locationManager.requestWhenInUseAuthorization() 

    if CLLocationManager.locationServicesEnabled() { 
     locationManager.delegate = self 
     locationManager.desiredAccuracy = kCLLocationAccuracyBest 
     locationManager.startUpdatingLocation() 
    } 




    loadShops() 

} 


func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
    let locValue:CLLocationCoordinate2D = manager.location!.coordinate 
      print("locations = \(locValue.latitude) \(locValue.longitude)") 

} 


func loadShops() { 

    let currentLocation = CLLocation() 
    let currentLat = currentLocation.coordinate.latitude 
    let currentLong = currentLocation.coordinate.longitude 


    var myLocation = CLLocation(latitude: currentLat, longitude: currentLong) 


    let shopLocation1 = CLLocation(latitude: 39.7886939, longitude: -86.1547275) 
    let distance1 = myLocation.distanceFromLocation(shopLocation1)/1000 
    let shop1 = coffeeShop(location: distance1)! 

} 

Кроме того, у меня есть все, установленное в info.plist и все, что хороший материал.

КАК Я ДЕЛАТЬ ЭТУ РАБОТУ !? * плачет мягко *

Заранее благодарим за вашу помощь!

+0

Какая часть не работает? У вас есть текущее определение местоположения? Комментарий назад '@ JohnRamos'. – owlswipe

+0

Вам не нужно запрашивать разрешение на размещение дважды. – Lumialxk

+0

Вы только пробовали в симуляторе? Если это так, вы включили фальшивое место для симулятора? – Lucas

ответ

0

Я смог использовать следующий код для достижения того, что мне нужно. Иногда вам просто нужно поместить его во Вселенной, чтобы вселенная могла сама ответить. Спасибо всем за помощь!

 let currentLat = self.locationManager.location!.coordinate.latitude 
     let currentLong = self.locationManager.location!.coordinate.longitude 
Смежные вопросы