ドキュメント / セットアップ / iOS / Apple MapKit

Apple MapKit セットアップ

Apple の MapKit を MapConductor から使う手順です。外部依存も API キーも SDK の初期化も不要で、iOS のプロバイダとしては最も準備が少なくて済みます。

PACKAGE
ios-for-mapkit
API KEY
不要
MIN iOS
15.1
VIEW
MapKitMapView
ほかのプラットフォームReact

前提

Xcode 15 以上
デプロイターゲット iOS 15.1 以上
STEP 01

Swift Package Manager で追加する

MapKit は iOS に同梱されているため、追加のアカウントやキー、初期化は必要ありません。パッケージを追加するだけです。

Package URLSwift Package Manager
https://github.com/MapConductor/ios-for-mapkit
Package.swiftSwift
dependencies: [
    .package(url: "https://github.com/MapConductor/ios-sdk-core", from: "1.1.4"),
    .package(url: "https://github.com/MapConductor/ios-for-mapkit", from: "1.0.0"),
],
targets: [
    .target(
        name: "YourApp",
        dependencies: [
            .product(name: "MapConductorCore", package: "ios-sdk-core"),
            .product(name: "MapConductorForMapKit", package: "ios-for-mapkit"),
        ]
    ),
]
STEP 02

位置情報の権限を足す(必要な場合)

位置情報を使う場合は Info.plist に用途を書き、アプリ側で許可を求めます。

Info.plistXML
<key>NSLocationWhenInUseUsageDescription</key>
<string>We need your location to display on the map</string>
LocationManager.swiftSwift
import CoreLocation

final class LocationManager: NSObject, ObservableObject, CLLocationManagerDelegate {
    private let manager = CLLocationManager()

    override init() {
        super.init()
        manager.delegate = self
    }

    func requestPermission() {
        manager.requestWhenInUseAuthorization()
    }
}

動作確認

ここまで動けば完了

地図が出てズームとパンが効けば完了です。

ContentView.swiftSwiftUI
import SwiftUI
import MapConductorCore
import MapConductorForMapKit

struct ContentView: View {
    @StateObject var mapState = MapKitViewState(
        mapDesignType: MapKitMapDesign.Standard,
        cameraPosition: MapCameraPosition(
            position: GeoPoint(latitude: 35.6812, longitude: 139.7671),
            zoom: 12.0
        )
    )

    var body: some View {
        MapKitMapView(state: mapState)
            .ignoresSafeArea()
    }
}

地図デザイン

MapKitMapDesign は MKMapType に対応します。

MapKitMapDesign
Notes
Standard
標準の道路地図
Satellite
衛星画像
Hybrid
衛星画像+道路とラベル
MutedStandard
データを載せる下地向けの淡いスタイル

うまくいかないとき

地図が出ない

  • デプロイターゲットが iOS 15.1 以上か確認します。
  • MapConductorForMapKit がターゲットにリンクされているか確認します。

ビルドが通らない

  • ビルドフォルダーをクリアします(Cmd+Shift+K)。
  • ~/Library/Developer/Xcode/DerivedData を削除して再ビルドします。
  • Swift Package Manager の依存を更新します。CocoaPods との併用は避けてください。

次に

Apple プラットフォームだけを対象にするなら、追加の SDK もキーも不要なぶん配布サイズも小さくなります。Web でも MapKit JS 版のプロバイダが使えます。