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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

Q&A

1回答

2243閲覧

Xcodeシミュレータの座標を任意の値に設定したいです。

sennin2911

総合スコア4

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

0グッド

0クリップ

投稿2020/06/26 18:26

編集2020/06/27 02:58

現在地の座標とロングタップの座標の距離を計測するコードを作成しました。
動作的には問題ありませんが、現在位置の座標が緯度:0、経度:0になります。
イメージ説明

試したこと①
シミュレータ起動後に、Debug > location > Custom Locationより緯度:35、経度:136を設定。
その後確認するも、緯度:0、経度:0のまま。
イメージ説明

試したこと②
シミュレータ起動後に、Xcodeのデバックツールバーに表示されるロケーションの場所を「Tokyo, Japan」に変更。
その後確認するも、緯度:0、経度:0のまま。

シミュレータの座標を任意の値に設定したいのですが、どうすれば良いでしょうか?
イメージ説明

html

1import UIKit 2import MapKit 3import CoreLocation 4 5class ViewController: UIViewController,CLLocationManagerDelegate,UIGestureRecognizerDelegate { 6 @IBOutlet weak var mapView: MKMapView! 7 @IBOutlet weak var latitude1: UILabel! 8 @IBOutlet weak var longitude1: UILabel! 9 10 @IBOutlet weak var latitude2: UILabel! 11 @IBOutlet weak var longitude2: UILabel! 12 13 14 override func viewDidLoad() { 15 super.viewDidLoad() 16 // Do any additional setup after loading the view. 17 } 18 19 @IBAction func longTapAction(_ sender: UILongPressGestureRecognizer) { 20 21 if sender.state == .began{ 22 23 } 24 else if sender.state == .ended{ 25 26 let tapPoint = sender.location(in: view) 27 let center = mapView.convert(tapPoint, toCoordinateFrom: mapView) 28 29 let lonStr = center.longitude.description 30 let latStr = center.latitude.description 31 32 let myPoint = mapView.userLocation.coordinate 33 34 35 latitude1.text = String(myPoint.latitude) 36 longitude1.text = String(myPoint.longitude) 37 38 latitude2.text = String(center.latitude) 39 longitude2.text = String(center.longitude) 40 41 let distance = calcDistance(mapView.userLocation.coordinate, center) 42 43 print("distance : " + distance.description) 44 45 46 47 48 49 50 } 51 } 52 53 func calcDistance(_ a: CLLocationCoordinate2D, _ b: CLLocationCoordinate2D) -> CLLocationDistance { 54 let aLoc: CLLocation = CLLocation(latitude: a.latitude, longitude: a.longitude) 55 let bLoc: CLLocation = CLLocation(latitude: b.latitude, longitude: b.longitude) 56 57 let dist = bLoc.distance(from: aLoc) 58 return dist 59 60 61 } 62 63 64} 65 66

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

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

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

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

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

guest

回答1

0

map上に現在地表示を示す青いマークは出ていますか?
出ていれば、let myPoint = mapView.userLocation.coordinateで取得できると思いますが。


追記

青いマークは出てないですね。
未だに、座標を設定出来ていません。

何もしなければ座標を設定はできませんし、私は座標を設定できなくてもちっとも困りませんよ。

直前の質問でTsukubaDepotさんが挙げているリンク先の記事をよく読まれてみてはどうですか?

2番目で現在位置の取得を説明してますよ。

質問者さんの上げたコードと記事の内容を比べると色々足りないところがあるのですが、必要ないと判断して削られたのでしょうか?

記事の補足としては、viewDidLoadあたりで、locationManager.startUpdatingLocation()を呼んであげてください。

投稿2020/06/28 21:47

編集2020/06/29 13:49
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

sennin2911

2020/06/29 12:36

青いマークは出てないですね。 未だに、座標を設定出来ていません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問