web-dev-qa-db-ja.com

iOSで変数の場所(緯度と経度の値)を取得するにはどうすればよいですか?

アプリユーザーの場所、具体的には緯度と経度の値を使用します。

それらを変数で使用して、URLで送信できるようにする必要があります...

私はこれまでiOSとXcodeの場所で作業したことがなく、インターネットで私の問題に一致するものは何も見つかりませんでした...

だから私は誰かがコードサンプルで私にそれを説明できることを願っています:)

THX for Uはドイツのローレンツを助けます

15
Laurenz Glück

CoreLocationを使用して、経度と緯度を取得できます。

インクルードフレームワーク:

ナビゲーターでプロジェクトをクリックします。

「バイナリをライブラリにリンク」の下にあるプラスボタンをクリックします

プロジェクトにCorelocationを追加します。

ヘッダーファイルをインポートします:

#import <CoreLocation/CoreLocation.h>

CLLocationManagerを宣言します:

CLLocationManager *locationManager;

locationManager:を初期化します

- (void)viewDidLoad
{
    locationManager = [[CLLocationManager alloc] init];
    locationManager.distanceFilter = kCLDistanceFilterNone; 
    locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
    [locationManager startUpdatingLocation];
}

次に、使用します

float latitude = locationManager.location.coordinate.latitude;
float longitude = locationManager.location.coordinate.longitude;
48
Peter Zhou

ステップ1:プロジェクトにCoreLocationフレームワークを追加します。

  1. 選択[〜#〜]ターゲット[〜#〜]->ビルドフェーズ
  2. Link Binary with Librariesを選択します
  3. プラス(+)ボタンをクリックします。これにより、フレームワークのリストがポップアップします。
  4. CoreLocation frameworkAddを検索します。

Screenshot 1

Screenshot 2

ステップ2:場所がフェッチされるビューコントローラーのヘッダーファイルに以下のコードを記述します。

#import <CoreLocation/CoreLocation.h>

また、インターフェイスにCLLocationManagerDelegateを追加します。

次に、LocationManagerのオブジェクトを作成します

 CLLocationManager *locationManager;

ステップ3:ViewDidLoadメソッドで、以下のコードを記述します。

    locationManager = [[CLLocationManager alloc] init];
    locationManager.distanceFilter = kCLDistanceFilterNone;
    locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
    [locationManager startUpdatingLocation];

    [locationManager requestAlwaysAuthorization]; //Note this one

DesiredAccuracy値をkCLLocationAccuracyBest, kCLLocationAccuracyNearestTenMeters, kCLLocationAccuracyHundredMeters, kCLLocationAccuracyKilometer, kCLLocationAccuracyThreeKilometersとして設定できます

次に、緯度と経度の値を取得するコードを以下に記述します

    float Lat = locationManager.location.coordinate.latitude;
    float Long = locationManager.location.coordinate.longitude;
    NSLog(@"Lat : %f  Long : %f",Lat,Long);

ステップ4:iOS 8では、このコードは警告なしに失敗します。つまり、エラーや警告は表示されません。

ロケーションを機能させるには、さらに2つのことを行う必要があります。

  1. Info.plistにキーを追加
  2. 認証のリクエスト開始を要求するロケーションマネージャから。

以下のキーのいずれかまたは両方をInfo.plistファイルに追加する必要があります。

  1. NSLocationWhenInUseUsageDescription
  2. NSLocationAlwaysUsageDescription

これらは文字列型であり、値は任意のメッセージの説明または空にすることができます。

次に、対応するロケーションメソッドの承認をリクエストする必要があります。以下のいずれかの呼び出しを使用します。

  1. [self.locationManager requestWhenInUseAuthorization]
  2. [self.locationManager requestAlwaysAuthorization]
16

迅速:

var locationManager = CLLocationManager()
locationManager.distanceFilter = kCLDistanceFilterNone
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
locationManager.startUpdatingLocation()

詳細はこちら: https://developer.Apple.com/library/mac/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html#//Apple_ref/occ/cl/CLLocationManager

3
linker