Как узнать текущее местоположение iPhone с помощью кода?

Как узнать текущее местоположение iPhone с помощью кода? Мне нужно отслеживать местоположение с помощью GPS.


person Dinesh Kumar    schedule 16.03.2010    source источник


Ответы (7)


Вы ищете API "CoreLocation".

Вот руководство

person David Gelhar    schedule 16.03.2010

На сайте разработчика есть (как всегда для основных функций) исчерпывающая документация, и вы можете найти этот пример полезен;

Ключевые моменты, которые следует запомнить:

1) Как только вы начинаете получать обновления местоположения, они поступают асинхронно, и вам нужно отвечать на них по мере их поступления. Проверьте точность и временные метки, чтобы решить, хотите ли вы использовать местоположение или нет.

2) Не забудьте прекратить получать обновления, как только у вас появится нужное местоположение (это может быть не первое), иначе вы разрядите аккумулятор.

3) Первое местоположение, возвращаемое вам, часто является ПОСЛЕДНИМ КЭШЕННЫМ, и телефон сообщит об этом местоположении с той же (возможно, высокой) точностью, что и при получении исправления раньше. Таким образом, вы можете получить исправление, которое претендует на точность до 10 метров, но на самом деле оно было получено вчера, когда вы находились в нескольких милях от вашего текущего местоположения. Девиз этого - НЕ ЗАБЫВАЙТЕ ПРОВЕРИТЬ TIMESTAMP - он сообщает вам, когда на самом деле было получено исправление местоположения. Вот пример того, как проверить метку времени.

Надеюсь, это поможет.

person Roger    schedule 16.03.2010
comment
Спасибо, Роджер, поймаю тебя после попытки с твоим примером - person Dinesh Kumar; 16.03.2010
comment
Ссылка на документацию разработчика не работает, поэтому я ее исправил. Я должен сказать, что третий пункт о кэшируемых локациях - это то, что многие разработчики упускают из виду, и это определенно отличный момент! +1 за это. Я обновляю сообщение @ Roger, чтобы добавить, как следует проверять временные метки местоположения. - person javatarz; 06.08.2013

На этой странице в CLLocationManager есть пять примеры исходного кода

person TechZen    schedule 16.03.2010

загрузите этот пример, он покажет вам текущее местоположение

person Droid    schedule 29.08.2011

Если вам просто нужно получить текущее местоположение устройства, использование Core Location напрямую требует большого количества кода, потому что вы должны обрабатывать задержку до тех пор, пока GPS устройства не будет точно определять текущее местоположение, что занимает несколько секунд. (API CLLocationManager, похоже, создан для приложений, которым требуется постоянное обновление местоположения, например приложений для пошаговой GPS-навигации.)

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

person smileyborg    schedule 29.03.2014

полный код здесь ниже

1 фреймворк для импорта карты перетаскивания дает делегату

в последней строке этого кода self.yourmapreferencename.setRegion ...

// весь код здесь

import UIKit import MapKit import CoreLocation class ViewController: UIViewController, CLLocationManagerDelegate {

@IBOutlet weak var mapView: MKMapView!
var locationManager : CLLocationManager!

override func viewDidLoad() {
    super.viewDidLoad()

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

    }

}

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

    let location = locations.last! as CLLocation
    let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)
    let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01))

    self.mapView.setRegion(region, animated: true)
}

}

person Ullas Pujary    schedule 17.02.2016