문서 / 설정 / 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가 튕겨 냄

잘 안 될 때

지도가 새하얗고, 타일이 한 장도 오지 않는다

  • 자격 정보가 지도 생성보다 먼저 설정되어 있는지 확인합니다.
  • Mappls의 콘솔에서 키가 유효한지, 이용 한도를 넘지 않았는지 확인합니다.
  • 단말이 네트워크에 나갈 수 있는지 확인합니다.

스타일을 바꾸면 style not found가 된다

  • StandardNight와 GreyDay는 추가 요금의 유료 옵션입니다. 계약하지 않은 경우는 Default나 StandardDay를 써 주세요.

래스터 레이어 등, Mappls 이외의 URL의 타일이 나오지 않는다

  • Mappls의 네이티브 HTTP 층은, URL에 mappls / mapmyindia를 포함하지 않는 요청을 버리거나 잘라 냅니다. MapConductor는 이것을 회피해 두었지만, SDK의 HTTP 모듈을 직접 교체하고 있는 경우는 회피도 벗겨집니다.

다음

마커・폴리라인・폴리곤・원・그라운드 이미지・래스터 레이어・InfoBubble은 공통 API인 채로 쓸 수 있습니다.