質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Q&A

1回答

2143閲覧

CLGeocoderについて

Auchan

総合スコア0

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

0グッド

0クリップ

投稿2022/04/17 13:26

教本でswiftの勉強をしているのですが、マップの位置情報を取得する講座で躓いています。
searchKeyに入ったキーワードの緯度経度をデバッグエリアに表示するという内容なのですが、
教本通りのコードを打ってもデバッグエリアに緯度経度が表示できず困っています。エラーは出ていません。
Xcode : ver13.3.1 swift : ver5.6 教えてください🥺

import SwiftUI import MapKit struct MapView: UIViewRepresentable { // 検索キーワード let searchKey: String // 表示する Viewを作成するときに実行 func makeUIView(context: Context) -> MKMapView { // MKMapViewのインスタンス生成 MKMapView() } //makeUIViewはここまで // 表示したViewが更新されるたびに実行 func updateUIView(_ uiView: MKMapView, context: Context) { //入力された文字をデバッグエリアに表示 print(searchKey) // CLGencoderインスタンスを取得 let geocoder = CLGeocoder() // 入力された文字から位置情報を取得 geocoder.geocodeAddressString( searchKey , completionHandler: { (placemarks, error) in // リクエストの結果が存在し、1件目の情報から位置情報を取り出す if let unwrapPlacemarks = placemarks , let firstPlacemark = unwrapPlacemarks.first , let location = firstPlacemark.location { // 位置情報から緯度経度をtargetCoordinateに取り出す let targetCoordinate = location.coordinate // 緯度経度をデバッグエリアに表示 print(targetCoordinate) } //ifはここまで }) //geocoder箱ここまで } //updateUIViewはここまで } //MapViewはここまで struct MapView_Previews: PreviewProvider { static var previews: some View { MapView(searchKey: "東京タワー") } }

↓デバッグに表示される内容

東京タワー 2022-04-17 22:12:00.584789+0900 MyMap[69836:1881392] [Client] {"msg":"#NullIsland Received a latitude or longitude from getLocationForBundleID that was exactly zero", "latIsZero":0, "lonIsZero":0, "location":'80 27 D8 6F 01 00 00 00'} 2022-04-17 22:12:00.804158+0900 MyMap[69836:1881387] [Font] Failed to parse font key token: hiraginosans-w6 2022-04-17 22:12:00.819886+0900 MyMap[69836:1881387] [Font] Failed to parse font key token: hiraginosans-w6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/04/17 14:12

私の環境ではちゃんと緯度経度が表示されますね。 コード自体は問題なさそうに思いました。 completionHandlerの最初でエラーの情報を見てみたら何か表示されますでしょうか? ```swift if let e = error { print(e.localizedDescription) } ``` 試しにネットワークをOFFにして操作してみたら、しばらくして次のエラーが表示されました。 The operation couldn’t be completed. (kCLErrorDomain error 2.)
katsu023

2022/06/25 05:56

Auchanさんと同じ症状が出た者ですが、私の環境でのエラーは、 kCLErrorDomain error 8. でした。 ご参考まで。
guest

回答1

0

私もおそらく同じ本で学習している者です。
検索ワードは"東京タワー"ではないでしょうか?
これを半角"tokyo tower"に変更したら、緯度と経度が返ってきました。
CLLocationCoordinate2D(latitude: 35.689506, longitude: 139.6917)
また、全角でも、"鎌倉の大仏"だと問題なくいけました。
CLLocationCoordinate2D(latitude: 34.9816198, longitude: 135.3358561)

"東京タワー"が鬼門なのでしょうか?

ただし、"tokyo tower"も"鎌倉の大仏"も、緯度と経度の前に、
{"msg":"#NullIsland Received a latitude or longitude from getLocationForBundleID that was exactly zero", ...
が出るのは変わらずです。

参考になりましたでしょうか?

投稿2022/06/25 05:53

編集2022/06/25 06:00
katsu023

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問