Как узнать текущее местоположение iPhone с помощью кода? Мне нужно отслеживать местоположение с помощью GPS.
Как узнать текущее местоположение iPhone с помощью кода?
Ответы (7)
На сайте разработчика есть (как всегда для основных функций) исчерпывающая документация, и вы можете найти этот пример полезен;
Ключевые моменты, которые следует запомнить:
1) Как только вы начинаете получать обновления местоположения, они поступают асинхронно, и вам нужно отвечать на них по мере их поступления. Проверьте точность и временные метки, чтобы решить, хотите ли вы использовать местоположение или нет.
2) Не забудьте прекратить получать обновления, как только у вас появится нужное местоположение (это может быть не первое), иначе вы разрядите аккумулятор.
3) Первое местоположение, возвращаемое вам, часто является ПОСЛЕДНИМ КЭШЕННЫМ, и телефон сообщит об этом местоположении с той же (возможно, высокой) точностью, что и при получении исправления раньше. Таким образом, вы можете получить исправление, которое претендует на точность до 10 метров, но на самом деле оно было получено вчера, когда вы находились в нескольких милях от вашего текущего местоположения. Девиз этого - НЕ ЗАБЫВАЙТЕ ПРОВЕРИТЬ TIMESTAMP - он сообщает вам, когда на самом деле было получено исправление местоположения. Вот пример того, как проверить метку времени.
Надеюсь, это поможет.
На этой странице в CLLocationManager есть пять примеры исходного кода
Если вам просто нужно получить текущее местоположение устройства, использование Core Location напрямую требует большого количества кода, потому что вы должны обрабатывать задержку до тех пор, пока GPS устройства не будет точно определять текущее местоположение, что занимает несколько секунд. (API CLLocationManager, похоже, создан для приложений, которым требуется постоянное обновление местоположения, например приложений для пошаговой GPS-навигации.)
Вместо прямого использования CLLocationManager я предлагаю вам взглянуть на использование компонента с открытым исходным кодом, такого как INTULocationManager, который будет выполняет всю эту работу за вас и упрощает запрос одного или нескольких дискретных запросов о текущем местоположении устройства.
полный код здесь ниже
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)
}
}
Настоящее решение можно найти здесь. Фрагмент кода разработки для iOS Z5 Concepts < / а>
Просто требуется немного кодирования.
- (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]];
}