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

StackOverflow https://stackoverflow.com/questions/2454197

Вопрос

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

Это было полезно?

Решение

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

Вот учебное пособие

Другие советы

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

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

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

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

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

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

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

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

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

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

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

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)
}

}

Реальное решение можно найти здесь. Z5 Concepts Фрагмент кода разработки для 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]];
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top