15

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

URLで送信できるように、変数で使用する必要があります...

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

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

ThxforuはドイツのLaurenzを支援します

4

3 に答える 3

48

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;
于 2012-10-04T21:39:24.047 に答える
17

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

  1. [ターゲット] ->[ビルドフェーズ]を選択します
  2. ライブラリとのリンクバイナリを選択します
  3. プラス(+)ボタンをクリックします。これにより、フレームワークリストがポップアップ表示されます。
  4. CoreLocationフレームワークを検索して追加します。

スクリーンショット1

スクリーンショット2

ステップ2:場所を取得するViewControllerのヘッダーファイルに以下のコードを記述します。

#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

希望する精度の値を次のように設定できます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]
于 2015-06-04T13:50:50.020 に答える
3

迅速:

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

于 2015-06-19T20:37:52.887 に答える