取得した座標から逆ジオコーディングしてローケーションマークをおきたいです。
以下のエラーで困っています。アドバイスお願いします。
viewcontroller
1import UIKit 2import MapKit 3import CoreLocation 4 5class FirstViewController: UIViewController, CLLocationManagerDelegate { 6 7 @IBOutlet weak var mapView: MKMapView! 8 let locationManager = CLLocationManager() 9 let geocoder = CLGeocoder() 10 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 locationManager.delegate = self as! CLLocationManagerDelegate 14 } 15 @IBAction func othersLocation(_ sender: Any) 16 { 17 ref.child("userLatitude").observeSingleEvent(of: .value, with: { (snapshot) in 18 //DBから座標を取得 19 let value = snapshot.value as? NSDictionary 20 let otherUserLatitude = value?["userLatitude"] as? Double 21 let otherUserLongitude = value?["userLongitude"] as? Double 22 print("位置情報を取得しました") 23 //DBから取得した座標を用いて逆ジオコーディング 24 //otherUserLatitudeとotherUserLongitudeにValue of optional type 'Double?' must be unwrapped to a value of type 'Double'のエラー 25 let location = CLLocation(latitude: otherUserLatitude, longitude: otherUserLongitude) 26 geocoder.reverseGeocodeLocation(location) { (placemarks, error) 27 if let placemarks = placemarks { 28 if let pm = placemarks.first { 29 print("country: (pm.country ?? "")") 30 31 if let region = pm.region { 32 print("region: (region)") 33 } 34 if let timeZone = pm.timeZone { 35 print("timeZone: (timeZone)") 36 } 37 print("inlandWater: (pm.inlandWater ?? "")") 38 print("ocean: (pm.ocean ?? "")") 39 if let areasOfInterest = pm.areasOfInterest { 40 print("areasOfInterest: (areasOfInterest)") 41 } 42 } 43 } 44 } 45 }) 46 { (error) in 47 print(error.localizedDescription) 48 } 49 50} 51
すみません。プログラムのどこで困っているのか記載して下さい。
print文の数を増やして、どこでエラーが出ているのか分かれば解決も早いと思います。
otherUserLatitudeとotherUserLongitudeに
Value of optional type 'Double?' must be unwrapped to a value of type 'Double'のエラーです。確認しづらくてすみません。
ちなみにですが、、、
逆ジオコーディングのみのサンプルは作って動かしてみましたか?
一度に全部を接続して、動かないってなるよりは小分けに試して、
それから合わせるのがセオリーですよ。
その方が問題箇所の把握にも役立ちますし、
遠回りに見えて、近道なはずです。
今回の箇所も逆ジオコーディングが問題という訳ではないですし、、、
今回は一応小分けにしてジオコーディングだけやってみてから自分のプロジェクトに取り組んだのですが、アンラップがわからず質問させて頂きました。。
小分けにぜずやってしまう時もあるのでこれからは徹底しようと思います。。
いつもアドバイスありがとうございます。
回答2件
あなたの回答
tips
プレビュー