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

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

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

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

3回答

4228閲覧

swift 現在位置がマップ上に表示されない

globalplus

総合スコア119

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/08/31 11:21

swiftのmap上で現在位置を表示したいと思っています。しかしなぜかあの青い丸が表示されません。

mapのUser Locationにもチェックしてあります。CoreLocationFrameworkも追加済。
mac本体の位置情報サービスのしようもオンになっています。本当に何故かわからないので教えて頂けたら幸いです。

FirstViewController

1import UIKit 2import MapKit 3import CoreLocation 4 5class FirstViewController: UIViewController, CLLocationManagerDelegate, MKMapViewDelegate { 6 7 let locationManager = CLLocationManager() 8 9 @IBOutlet weak var mapView: MKMapView! 10 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 14 self.locationManager.delegate = self 15 16 self.locationManager.desiredAccuracy = kCLLocationAccuracyBest 17 18 self.locationManager.distanceFilter = kCLDistanceFilterNone 19 20 self.locationManager.requestWhenInUseAuthorization() 21 //※info.plistに「Privacy - Location When In Use Usage Description」を追加済 22 23 self.mapView.showsUserLocation = true 24 25 self.mapView.delegate = self 26 27 self.locationManager.startUpdatingHeading() 28 29 } 30 31 override func didReceiveMemoryWarning() { 32 super.didReceiveMemoryWarning() 33 // Dispose of any resources that can be recreated. 34 } 35 36}

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

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

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

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

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

u39ueda

2018/08/31 11:43

iOSですよね?シミュレータで実行していますか?最初に許可を求めるアラートは表示されましたか?
globalplus

2018/08/31 14:23

iOSです。シミュレータで実行してます。出ません、マップだけ表示されて何も起こりません。。
fuzzball

2018/09/03 07:27

iOSのタグを付けて下さい。
guest

回答3

0

おそらくシミュレータに位置情報がセットされていないせいだと思います。

シミュレータのメニューから Debug > Location を開き None以外 を選択してください。
位置情報サービスが許可されていれば現在位置(青丸)が表示されるようになるはずです。

ちなみにシミュレータの位置情報サービスの許可は mac本体 ではなく、シミュレータ内の設定アプリから確認/設定します。
上の手順を行っても現在位置が表示されない場合は確認してみてください。

投稿2018/09/03 07:23

u39ueda

総合スコア950

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

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

globalplus

2018/09/03 11:59

None 以外を設定しシミュレータアプリ内からも設定しました(もともとオンでした)が以前変わらずです。。。
globalplus

2018/09/03 12:02

すみません。プロジェクト自体を再起動したらうまく行きました。ご回答ありがとうございます。
guest

0

訂正:コードの追加は不要ため訂正します。

理由は設定が足らないからだと思いますが…。

青い丸なら↓のプロパティをmapViewに設定してあげてください。

swift

1@available(iOS 5.0, *) 2 open func setUserTrackingMode(_ mode: MKUserTrackingMode, animated: Bool)

コードの追加場所・記述

swift

1override func viewDidLoad() { 2 super.viewDidLoad() 3 4 // いろいろ省略 5 6     //↓これはもとからあるやつ(selfってついてるからselfってつけときます。) 7     self.mapView.showsUserLocation = true 8 //↑の下辺りに↓この一行を追加してください。(他がselfってついてるからselfってつけときます。) 9 self.mapView.setUserTrackingMode(.follow, animated: true) 10 11     // いろいろ省略 12}

~~

念の為追記/下記の設定箇所も確認してください

① Simulatorの位置情報設定(u39uedaさんの説明されている部分)
まあ、アップルあたりで。/ globalplusさんご所望の青い丸ってこれでいいの?
イメージ説明

② シミュレータのiOS内部の設定(これも、u39uedaさんの説明されている部分)
インストールしたアプリに対してLocationServicesが許可されているかどうか。
イメージ説明

③ info.plistに「Privacy - Location When In Use Usage Description」を追加
ソースコードの中に追加済みと書いてありますが、追加作業はされましたか?
追加済とありますので追加済みと捉えていますが、ソースをコピペしただけで中身を一切読んでいない可能性が
ありますので…。

もし、コピペしたソースの中に書いてあるだけで設定項目の存在自体を認識されていない場合は、設定してあげてください

イメージ説明

コードを追加して、追加事項の①・②・③をよく確認してください、これで出ると思いますよ。

投稿2018/08/31 14:30

編集2018/09/03 12:29
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

globalplus

2018/09/03 12:00

location設定はもともとオンでした。infoに関しましては自分で以前に追加済みです アドバイス頂いた事を全て試しましたが以前変わらずです。。。
退会済みユーザー

退会済みユーザー

2018/09/03 12:02

viewDidLoadのなかに、コードは追記しましたか?
globalplus

2018/09/03 12:05

プロジェクト自体を再起動したらうまく行きました。沢山のアドバイス等頂き本当にありがとうございます。 初心者ゆえにこれから色々質問させて頂く事もあると思いますがこれからもよろしくお願いします。今回は本当に助かりました。ありがとうございます。
globalplus

2018/09/03 12:05

コメントが入れ違いになってすみません。
退会済みユーザー

退会済みユーザー

2018/09/03 12:18 編集

私の回答を見て今回あなたが変更したことくらいは教えてください。
globalplus

2018/09/03 12:12

プロジェクトを再起動したらうまく現在位置(Apple)が表示されました。
退会済みユーザー

退会済みユーザー

2018/09/03 12:31 編集

回答の一番上に書いてあるコードは必要ないということですね、 でしたら再起動したら出来ましたと書いてご自分で書いて自己解決にそちらを自己解決にしてください。この回答はベストアンサーではありませんよ。
globalplus

2018/09/03 12:21

わかりました。なんか申し訳ないです。あなたのアドバイスをもとにいじっていたら解決にたどり着いたのでここで言わせていただきます。ありがとうございました。
退会済みユーザー

退会済みユーザー

2018/09/03 12:40 編集

いじっていたら? いじった内容があるなら回答に記入してくださいな。
退会済みユーザー

退会済みユーザー

2018/09/03 13:10 編集

現在地に青い丸出てるんですよね…。
guest

0

自己解決

info.plistを再確認(Privacy - Location When In Use Usage Descriptionがちゃんと追加されているか)したりシミュレータ内の設定の位置情報設定がオンになっているか確認して模索していた結果、
プロジェクト自体を再起動したらうまく行きました。
皆さんありがとうございました。

投稿2018/09/03 12:22

編集2018/09/03 13:19
globalplus

総合スコア119

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問