web-dev-qa-db-ja.com

Swiftで緯度と経度を指定してCLLocationオブジェクトを初期化します

Objective C(私は経験がありません)では、次のような緯度と経度でCLLocationオブジェクトを初期化できます。

CLLocation *myLocation = [[CLLocation alloc]  initWithLatitude:your_latitiude_value longitude:your_longitude_value];

しかし、Swiftでどのように行うのですか?

これを試した

let loc_coords = CLLocationCoordinate2D(latitude: your_latitiude_value, longitude: your_longitude_value)

let loc = CLLocation().coordinate(loc_coords)

しかし、私はこのエラーを受け取ります:

タイプ '(CLLocationCoordiate2D)'の引数リストで「座標」を呼び出すことはできません

LocationManager内でdistanceFromLocationメソッドを使用するため、CLLocationオブジェクトである必要があります。

お役に立てば幸いです!

20
Henrik Holm

私はそれをテストするために私のMacの近くにはいませんが、以下はうまくいくはずです。 latlonの値を次のようにCLLocaion初期化子に渡すだけです:

let myLocation = CLLocation(latitude: your_latitiude_value, longitude: your_longitude_value) 

参考のために、 documentation を確認できます

27
Vasil Garov

必要なのが緯度と時間がかかるイニシャライザだけである場合、コードは次のようになります。

let latitude: CLLocationDegrees = 37.2
let longitude: CLLocationDegrees = 22.9

let location: CLLocation = CLLocation(latitude: latitude, 
  longitude: longitude)

より多くのパラメーターを取る他のイニシャライザーがありますが、それらについては尋ねませんでした。

10
Duncan C