문서 / 설정 / iOS / Longdo

Longdo 설정

Longdo Map iOS SDK(Longdo Map Framework 4.x)를 MapConductor에서 쓰는 절차입니다. iOS 판은 마커・폴리라인・폴리곤・원・그라운드 이미지・래스터 레이어를 네이티브 오버레이로서 그립니다.

PACKAGE
ios-for-longdo
API KEY
필요
MIN iOS
16.0
VIEW
LongdoMapView
같은 프로바이더, 다른 플랫폼AndroidReact

시작하기 전에

Xcode 15 이상
Longdo Map 콘솔에서 발행한 API 키
디플로이 타깃 iOS 16.0 이상
STEP 01

API 키를 취득한다

Longdo Map 콘솔에서 키를 발행합니다.

STEP 02

Swift Package Manager로 추가한다

Xcode의 File > Add Package Dependencies에서 패키지 URL을 입력합니다. Longdo Map Framework(바이너리 XCFramework)는 의존 관계로서 자동으로 들어옵니다. SwiftPM만의 배포입니다.

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

API 키를 넘긴다

3가지 중 어느 것이든 상관없습니다.

MyApp.swiftSwift
LongdoInitSDK.apiKey = "YOUR_LONGDO_API_KEY"

// or per view:
// LongdoMapView(state: state, apiKey: "YOUR_LONGDO_API_KEY") { ... }

// or add LONGDO_API_KEY to Info.plist

동작 확인

여기까지 보이면 완료

방콕을 중심으로 지도가 나오고, 마커와 원이 그려지면 완료입니다.

ContentView.swiftSwiftUI
import SwiftUI
import MapConductorCore
import MapConductorForLongdo

struct ContentView: View {
    @StateObject private var state = LongdoViewState(
        mapDesignType: LongdoDesign.Normal,
        cameraPosition: MapCameraPosition(
            position: GeoPoint(latitude: 13.7563, longitude: 100.5018),
            zoom: 12
        )
    )

    var body: some View {
        LongdoMapView(state: state) {
            Marker(
                position: GeoPoint(latitude: 13.7563, longitude: 100.5018),
                icon: DefaultMarkerIcon(label: "A")
            )
            Circle(
                center: GeoPoint(latitude: 13.7563, longitude: 100.5018),
                radiusMeters: 1500
            )
        }
    }
}

지도 디자인

LongdoDesign은 Longdo의 베이스 레이어에 대응합니다.

LongdoDesign
Notes
Normal / Easy / Political
표준 계열의 스타일
Pastel / PastelGray / Light / Gray
옅은 스타일
Night / Dark / Hard
암색・고대비
Satellite / Hybrid
위성 화상과 하이브리드
Osm
OpenStreetMap 기반

잘 안 될 때

지도가 나오지 않는다

  • API 키가 3가지 중 어느 하나로 확실히 전달되고 있는지 확인합니다.
  • 디플로이 타깃이 iOS 16.0 이상인지 확인합니다.

마커가 많으면 무겁다

  • Longdo는 마커를 하나씩 렌더링하기 때문에, 타일링이나 클러스터링에 의한 최적화는 듣지 않습니다. 대량의 마커가 필요한 경우는 다른 프로바이더를 검토해 주세요.

빌드가 통과하지 않는다

  • 빌드 폴더를 지웁니다(Cmd+Shift+K).
  • ~/Library/Developer/Xcode/DerivedData를 삭제하고 다시 빌드합니다.
  • Swift Package Manager의 의존을 갱신합니다. CocoaPods와의 병용은 피해 주세요.

다음

원은 Longdo의 Circle의 반지름 단위가 애매하기 때문에, 측지선의 링을 폴리곤으로 그리고 있습니다. 반지름은 미터로 지정할 수 있습니다.