コードを介してiPhoneの現在の場所を取得するにはどうすればよいですか? GPS を使用して位置を追跡する必要があります。
7 に答える
開発者サイトには (コア機能についてはいつものように) 包括的なドキュメントがあり、この例が役立つ場合があります。
覚えておくべき重要なポイントは次のとおりです。
1) 位置情報更新の受信を開始すると、それらは非同期に到着するため、受信したときに応答する必要があります。精度とタイムスタンプを確認して、位置情報を使用するかどうかを決定します。
2) 目的の場所に到達したらすぐに更新の受信を停止することを忘れないでください (これが最初の場所ではない可能性があります)。そうしないと、バッテリーの寿命が消耗します。
3) 最初に返された場所は、多くの場合、最後にキャッシュされた場所であり、電話は、以前に修正を取得したときと同じ (場合によっては高い) 精度でこの場所を報告します。そのため、10 メートルの精度であると主張する修正プログラムを取得する可能性がありますが、実際には、現在の場所から数マイル離れた場所で昨日受信したものです。これのモットーは、タイムスタンプを確認することを忘れないことです。これにより、位置修正が実際にいつ受信されたかがわかります。タイムスタンプを確認する方法の例を次に示します。
それが役立つことを願っています。
「CoreLocation」API を探しています。
CLLocationManager のこのページには、5 つのソース コードの例があります。
この例をダウンロードすると、現在の場所が表示されます
完全なコードは以下にあります
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)
}
}
実際の解決策はここにあります。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]];
}