4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Swift MkMapViewで地図アプリ作成してみた(06)- スケールバーとコンパスを追加する

Last updated at Posted at 2019-03-07

#記事一覧
Swift MkMapViewで地図アプリ作成してみた(記事一覧)

#スケールバーを表示する

スケールを変更すると自動でスケールバーを表示する。

ViewController.swift:スケールバーを表示する
// スケールバーの表示
let scale = MKScaleView(mapView: mapView)
scale.frame.origin.x = 15
scale.frame.origin.y = 45
scale.legendAlignment = .leading
self.view.addSubview(scale)

legendAlignmentに設定できる値は以下の通り。

1 2
.leading 0を左起点にする
.trailing 0を右起点にする
scale.png

#コンパスを表示する

ViewController.swift:コンパスを表示する
// コンパスの表示
let compass = MKCompassButton(mapView: mapView)
compass.compassVisibility = .adaptive
compass.frame = CGRect(x: width - 50, y: 150, width: 40, height: 40)
self.view.addSubview(compass)
// デフォルトのコンパスを非表示にする
mapView.showsCompass = false

compassVisibilityに設定できる値は以下の通り。

1 2
.hidden 常に非表示
.visible 常に表示 
.adaptive 地図の方位を動かしたとき(ノースアップでない時)だけ表示。

#デバイスで実行した結果

device.png

#補足
前回の記事で設定したトラッキングモードを変更するボタンの位置を変えている。
Swift MkMapViewで地図アプリ作成してみた(04)- トラッキングモードを切り替える(自作ボタン)
Swift MkMapViewで地図アプリ作成してみた(05)- トラッキングモードを切り替える(MKUserTrackingButton)

ViewController.swift:トラッキングボタンの位置を変更
trakingBtn.frame = CGRect(x:width - 50, y:100, width:40, height:40)

#参考文書
iOS 11で大幅に強化されたMapKit

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?