使い方iPhoneのCLLocationクラスに割り当て緯度経度を変数には?
-
28-09-2019 - |
質問
私る方法を学習しようとしているのCLLocationクラス造の構築を目指すため、iPhoneアプリでは、ユーザーの現在の位置、そしてその取得結果からはsqliteデータベースです。このために、必要最初に取得、利用者の現在地を使用CLLocationクラスは、具体的には、法
(void)locationManager: (CLLocationManager *)manager didUpdateToLocation: (CLLocation *)newLocation fromLocation: (CLLocation *)oldLocation {}
現在、私はこの座に登場するサンプルアプリをうまくいった配備されている。しかし、また変更にもう一個の更新(あるいは複数の)、印刷への出力はNSLogます。私は当該コードは以下のようなものです:
- (void) locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation {
numUpdates++;
NSString *lat = [[NSString alloc] initWithFormat:@"%g", newLocation.coordinate.latitude];
latitudeTextField.text = lat;
NSString *lng = [[NSString alloc] initWithFormat:@"%g", newLocation.coordinate.longitude];
longitudeTextField.text = lng;
NSString *acc = [[NSString alloc] initWithFormat:@"%g", newLocation.horizontalAccuracy];
accuracyTextField.text = acc;
if (numUpdates == 1) {
[lm stopUpdatingLocation];
NSLog(@"latitude: %i longitude: %i", lat, lng);
}
しかしここに座標が表示され、コンソール(37.3317のための緯度、-122.031のための緯度-経度)を取得し、以下の出力は、残念ながらそれぞれ異な時間を走ってます自分のコード:
[Session started at 2010-11-03 01:43:36 -0400.]
2010-11-03 01:43:41.208 GPS[4702:207] latitude: 65138096 longitude: 65023248
Terminating in response to SpringBoard's termination.
[Session started at 2010-11-03 21:38:45 -0400.]
2010-11-03 21:39:37.072 GPS[5880:207] latitude: 65030208 longitude: 65070336
Terminating in response to SpringBoard's termination.
[Session started at 2010-11-03 21:53:12 -0400.]
2010-11-03 21:53:21.824 GPS[5899:207] latitude: 65042624 longitude: 65086352
誰でもできるのでんでんでいるのは間違っているのは、との見方を正しく割り当ての値をユーザーの緯度、経度位置の変数は、印刷後のNSLogコンソールでの小数点形式をとらない程度のフォーマットは何ですか?
解決
%i
INT値を印刷するためです。あなたのコードでは、latとlngはnsstrings(オブジェクト)なので使用します %@
:
NSLog(@"latitude: %@ longitude: %@", lat, lng);
見る 文字列形式の仕様.
他のヒント
場所が異なるのでGPSデータはない。が必要な場合は正確で十分なデータを無視する3-4最初の箇所によるフィルタリングに基づくnewLocation.horizontalAccuracy.
所属していません StackOverflow