2017-01-30 6 views
-1

Я хочу извлекать и обновлять широту и долготу каждый раз, когда я нажимаю кнопку и показываю, где находится пользователь в исходном местоположении, очень важно обновить местоположение, потому что это приложение, здесь мой код:Быстрое обновление Локатор и долгота

var locationManager = CLLocationManager() 


@IBAction func update(_ sender: Any) { 
    locationManager.startUpdatingLocation() 


} 
override func viewDidAppear(_ animated: Bool) { 

    super.viewDidAppear(animated) 

    locationManager.delegate = self 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest 
    locationManager.requestWhenInUseAuthorization() 
    locationManager.startUpdatingLocation() 



    let url = URL(string: "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=\(latitude),\(longitude)radius=5000&types=gas_station&key=AIzaSyDVyaidSrF37d0M6XrHvosTXK4z-rkoLDg")! 

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 

    let userLocation: CLLocation = locations[0] 

    let latitude = userLocation.coordinate.latitude 

    let longitude = userLocation.coordinate.longitude 

    let latDelta: CLLocationDegrees = 0.05 

    let lonDelta: CLLocationDegrees = 0.05 

    let span: MKCoordinateSpan = MKCoordinateSpanMake(latDelta, lonDelta) 

    let location: CLLocationCoordinate2D = CLLocationCoordinate2D(latitude: latitude, longitude: longitude) 

    let region: MKCoordinateRegion = MKCoordinateRegion(center: location, span: span) 


    map.setRegion(region, animated: true) 


    locationManager.stopUpdatingLocation() 
} 

ответ

0

У вас есть CLLocationManager. В любое время вы можете получить местоположение устройства с помощью

locationManager.location 

, который является CLLocation. Единственное, о чем я бы предупреждал, это то, что requestAuthorization и т. Д. Занимает несколько секунд, и это местоположение будет равно нулю, пока оно не будет завершено, и CLLocationManager начал поиск. Поэтому будьте осторожны при развертывании дополнительных модулей и подумайте о создании своего менеджера locationManager и запросе авторизации в предыдущем VC. Полный IBAction, который получает ваше местоположение пользователя и вставляет lat и long в URL-адрес:

@IBAction func pushed(_ sender: Any) { 
    if let location = locationManager.location { 
      let url = URL(string: "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=\(location.coordinate.latitude),\(location.coordinate.longitude)radius=5000&types=gas_station&key=AIzaSyDVyaidSrF37d0M6XrHvosTXK4z-rkoLDg")! 
      // Now do whatever you need to do with the URL, at this point 
    } 
} 
+0

Возможно, я ошибаюсь, но похоже, что OP уже получает местоположение внутри метода определения местоположения. IMO он просто хочет создать URL-адрес с этой информацией при нажатии кнопки –

+0

как я ее реализую –

+0

У меня создалось впечатление, что он хочет получить широту и долготу, каждый раз при нажатии кнопки. @JuanJoseRodrigo: Вы можете уточнить, что ищете? – dylanthelion

 Смежные вопросы

  • Нет связанных вопросов^_^