前提・実現したいこと
SWIFTで位置情報を10メートルごとに更新しています。
更新した位置情報をGPXファイルに書き込んで、そのあとに読み込みもしたいと思ってます。
データ量が多いのと、後からエクスポートや読み込みもしたいので
UserDefaultsを使わずに実現したいです。
GPXファイルの書き込み方法が調べてもなかなか出てこないので、ご存知の方がいらっしゃいましたら教えて下さい。
エラーは出てないですが、現在のソースコードも掲載します。
よろしくお願いします。
SWIFT
import UIKit import CoreLocation import MapKit class MapViewController: UIViewController,CLLocationManagerDelegate { var locationManager: CLLocationManager! @IBOutlet weak var mapView: MKMapView! override func viewDidLoad() { super.viewDidLoad() setupLocationManager() // LocationManagerのインスタンスを生成 locationManager = CLLocationManager() // LocationManagerの位置情報変更などで呼ばれる呼ばれるfanctionを自身で受けるように設定 locationManager.delegate = self // 位置情報取得をユーザーに認証してもらう locationManager.requestAlwaysAuthorization() // 位置情報の認証チェック let status = CLLocationManager.authorizationStatus() if (status == .notDetermined) { print("許可、不許可を選択してない"); // 常に許可するように求める locationManager.requestAlwaysAuthorization(); } else if (status == .restricted) { print("機能制限している"); } else if (status == .denied) { print("許可していない"); } else if (status == .authorizedWhenInUse) { print("このアプリ使用中のみ許可している"); locationManager.startUpdatingLocation(); } else if (status == .authorizedAlways) { print("常に許可している"); locationManager.startUpdatingLocation(); } // Do any additional setup after loading the view. } func setupLocationManager() { locationManager = CLLocationManager() guard let locationManager = locationManager else{ return } locationManager.requestAlwaysAuthorization() let status = CLLocationManager.authorizationStatus() if status == .authorizedWhenInUse { locationManager.distanceFilter = 10 locationManager.startUpdatingLocation() } } func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { let location = locations.first let latitude = location?.coordinate.latitude let longitude = location?.coordinate.longitude let initialCoordinate = CLLocationCoordinate2D(latitude: latitude!,longitude: longitude!) print("latitude:(latitude)\nlongitude: (longitude)") mapView.userTrackingMode = .follow } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/16 03:47