SwiftでMapタイプの切り替え方


何をやるのか?

簡易的なMapアプリのオプション機能として、mapタイプの切り替えを行う。

前提

MapKitにてMapが設置されていることを前提とする。

Mapの種類

画面 定義 内容        
.mutedStandard 交通機関
.standard 標準の地図
.satellite 航空写真
.hybrid 航空写真
+
ラベル
.satelliteFlyover 3D Flyover
.hybridFlyover 3D Flyover
+
ラベル

実装コード

@IBAction func changeMapButton(_ sender: UIButton) {
        if Map.mapType == .standard {
            Map.mapType = .satellite
        } else if Map.mapType == .satellite{
            Map.mapType = .hybrid
        } else if Map.mapType == .hybrid{
            Map.mapType = .satelliteFlyover
        } else if Map.mapType == .satelliteFlyover{
            Map.mapType = .hybridFlyover
        } else if Map.mapType == .hybridFlyover{
            Map.mapType = .mutedStandard
        } else {
            Map.mapType = .standard
        }
    }

if文を使い現在のmapTypeと各mapTypeを順番に比較し、もし同じTypeだった場合次のTypeを代入するという簡単なコードになっています。
x-codeのフレームワークのButtonをStoryboardに貼り、それに対応する関数内に記述すれば問題ありません。

最後に

非常に簡単な実装ですが、割と本格的なアプリのように仕上がるので、初学者の方やプログラミングやった事ないけど興味ある人も是非一度実装して、開発の楽しさを体験してみましょう。