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

Mappls セットアップ

Mappls(MapmyIndia)の公式 iOS SDK を MapConductor から使う手順です。Swift Package Manager で入れ、認証はアプリに置く設定ファイルで行います。

MODULE
MapConductorForMappls
API KEY
必要
VIEW
MapplsMapView
TIME
15 分
ほかのプラットフォームAndroidReact

前提

Xcode 15 以上
iOS 16.0 以上を対象とするアプリ
Mappls(MapmyIndia)のアカウントと資格情報
STEP 01

資格情報を取得する

Mappls の開発者コンソールでアプリを登録し、資格情報を取得します。iOS では .i.conf / .i.olf という設定ファイルで認証します。1 本の API キーを渡す方式ではありません。

STEP 02

パッケージを追加する

Mappls の配布リポジトリと MapConductor のモジュールを Swift Package Manager で追加します。

Package.swiftSwift
dependencies: [
    .package(url: "https://github.com/mappls-api/mappls-map-ios-distribution.git", from: "6.1.5"),
    .package(url: "https://github.com/MapConductor/ios-sdk-core", from: "1.3.1"),
    .package(url: "https://github.com/MapConductor/ios-for-mappls", from: "1.0.0"),
]
STEP 03

認証ファイルを配置する

Mappls から受け取った .i.conf / .i.olf をアプリのバンドルに含めます。MapConductor は地図を生成する前にこれを読み込みます。ファイルはソース管理に入れないでください。

動作確認

ここまで動けば完了

デリーを中心に地図を出します。タイルが読み込まれれば完了です。

import SwiftUI
import MapConductorCore
import MapConductorForMappls

struct TestMappls: View {
    @StateObject private var state = MapplsViewState(
        mapDesignType: MapplsDesign.Default,
        cameraPosition: MapCameraPosition(
            position: GeoPoint(latitude: 28.6139, longitude: 77.2090),
            zoom: 11
        )
    )

    var body: some View {
        MapplsMapView(state: state)
    }
}

地図デザイン

Notes
Default
契約に関係なく使える既定のスタイル
StandardDay
標準の昼スタイル
StandardNight / GreyDay
追加料金の有料オプション。契約していないと SDK が弾く

うまくいかないとき

地図が真っ白で、タイルが 1 枚も来ない

  • 資格情報が地図生成より前に設定されているか確認します。
  • Mappls のコンソールでキーが有効か、利用枠を超えていないか確認します。
  • 端末がネットワークに出られるか確認します。

スタイルを変えると style not found になる

  • StandardNight と GreyDay は追加料金の有料オプションです。契約していない場合は Default か StandardDay を使ってください。

ラスターレイヤーなど、Mappls 以外の URL のタイルが出ない

  • Mappls のネイティブ HTTP 層は、URL に mappls / mapmyindia を含まないリクエストを捨てるか切り落とします。MapConductor はこれを回避済みですが、SDK の HTTP モジュールを自前で差し替えている場合は回避も外れます。

次に

マーカー・ポリライン・ポリゴン・円・グラウンドイメージ・ラスターレイヤー・InfoBubble は共通 API のまま使えます。