Как узнать текущее местоположение iPhone через код? - PullRequest
3 голосов
/ 16 марта 2010

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

Ответы [ 7 ]

17 голосов
/ 16 марта 2010

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

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

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

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

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

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

5 голосов
/ 16 марта 2010

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

Вот учебник

2 голосов
/ 16 марта 2010

Эта страница в CLLocationManager содержит пять примеров исходного кода

1 голос
/ 29 августа 2011

скачайте пример покажет текущее местоположение

0 голосов
/ 17 февраля 2016

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

1 перетащить карту структура импорта дать делегату

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

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

импорт UIKit импорт MapKit импортировать CoreLocation Класс 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)
}

}

0 голосов
/ 29 марта 2014

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

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

0 голосов
/ 02 июня 2012

Настоящее решение можно найти здесь. Фрагмент кода разработки для Z5 Фрагмент кода iOS

Требуется немного кодирования.

- (IBAction)directions1_click:(id)sender
{
    NSString* address = @"118 Your Address., City, State, ZIPCODE";
    NSString* currentLocation = @"Current Location";
    NSString* url = [NSStringstringWithFormat: @"http://maps.google.com/maps?saddr=%@&daddr=%@",[currentLocation stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],[address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    UIApplication *app = [UIApplicationsharedApplication];
    [app openURL: [NSURL URLWithString: url]];
}
...