如何通过代码获取iPhone的当前位置?我需要使用GPS跟踪位置。
答案 0 :(得分:17)
开发人员网站上有(一如既往的核心功能)综合文档,您可能会发现this example很有用;
要记住的要点是;
1)一旦开始接收位置更新,它们就会异步到达,您需要在它们进入时对它们做出响应。检查准确性和时间戳,以决定是否要使用该位置。
2)不要忘记在获得所需位置后立即停止接收更新(这可能不是第一个),否则会耗尽电池寿命。
3)返回给您的第一个位置通常是最后一个位置,手机将以之前获得修复时的相同(可能很高)精度报告此位置。因此,您可能会得到一个声称精确到10米的修复程序,但实际上是在距离您当前位置数英里的情况下昨天收到的。这样做的座右铭是不要忘记检查TIMESTAMP - 这会告诉您何时实际收到了位置修复。 Here's an example of how to check the timestamp
希望有所帮助。
答案 1 :(得分:5)
您正在寻找“CoreLocation”API。
答案 2 :(得分:2)
This page on CLLocationManager有五个源代码示例
答案 3 :(得分:1)
下载此example,它会显示当前位置
答案 4 :(得分:0)
如果您只需要获取设备的当前位置,直接使用Core Location需要大量代码,因为您必须处理延迟,直到设备的GPS对当前位置有准确的修复,这需要几秒钟。 (CLLocationManager API似乎是为需要连续位置更新的应用程序构建的,例如转弯GPS导航应用程序。)
我建议您不要直接使用CLLocationManager,而是使用open source component such as INTULocationManager来处理所有这些工作,并且可以轻松地为设备的当前位置请求一个或多个离散请求。
答案 5 :(得分:0)
完整代码如下所示
1拖动地图 进口框架 给代表
在此代码的最后一行self.yourmapreferencename.setRegion ...
//这里的所有代码
导入UIKit 导入MapKit 导入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)
}
}
答案 6 :(得分:-2)
真正的解决方案可以在这里找到。 Z5 Concepts iOS Development Code Snippet
它只需要一点点编码。
- (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]];
}