문서 / 설정 / Android / ArcGIS
ArcGIS 설정
ArcGIS Maps SDK for Kotlin을 MapConductor에서 쓰는 절차입니다. Esri의 저장소를 추가하고, API 키를 매니페스트 경유로 넘깁니다. 2D와 3D 양쪽의 뷰를 쓸 수 있습니다.
MODULE
com.mapconductor:for-arcgis
API KEY
필요
VIEW
ArcGISMapView / 2D
TIME
20분
시작하기 전에
Android 개발 환경(Android Studio)
ArcGIS 개발자 계정
ArcGIS의 API 키
STEP 01
API 키를 취득한다
- ArcGIS Developer 계정을 만듭니다.
- ArcGIS Developer Dashboard를 엽니다.
- 애플리케이션을 만들고, 필요한 스코프로 API 키를 발행합니다.
STEP 02
Esri의 저장소를 더한다
settings.gradle.ktsKotlin
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
// Esri public repository for ArcGIS Maps SDK
maven {
url = uri("https://esri.jfrog.io/artifactory/arcgis")
}
}
}STEP 03
Secrets Gradle Plugin을 넣는다
키를 소스 관리에 두지 않기 위한 구조입니다. 플러그인이 secrets.properties를 읽고, 빌드 시에 AndroidManifest.xml의 플레이스홀더에 값을 끼워 넣습니다.
(root)/build.gradle.ktsKotlin
plugins {
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
}STEP 04
의존 관계를 추가한다
ArcGIS 쪽도 BOM을 씁니다. Compose용 toolkit도 필요합니다.
app/build.gradle.ktsKotlin
plugins {
// ... other plugins
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
}
dependencies {
// ArcGIS Maps SDK
implementation(platform("com.esri:arcgis-maps-kotlin-toolkit-bom:300.1.0"))
implementation("com.esri:arcgis-maps-kotlin:300.1.0")
implementation("com.esri:arcgis-maps-kotlin-toolkit-geoview-compose")
implementation("com.esri:arcgis-maps-kotlin-toolkit-authentication")
// MapConductor BOM pins every module below
implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:for-arcgis")
}STEP 05
매니페스트와 키를 설정한다
AndroidManifest.xmlXML
<manifest>
<!-- Add internet and location permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application>
<!-- ArcGIS API Key -->
<meta-data
android:name="ARCGIS_API_KEY"
android:value="${ARCGIS_API_KEY}" />
</application>
</manifest>secrets.propertiesProperties
ARCGIS_API_KEY=your_actual_arcgis_api_key_here
주의
secrets.properties는 버전 관리에 커밋하지 마세요. .gitignore에 추가해 두면 사고를 막을 수 있습니다. CI에서는 환경 변수 등 다른 안전한 경로로 넘깁니다.
STEP 06
라이선스를 설정한다(본번만)
기본적인 지도 표시만이라면 불필요합니다. 본번 배포에서는 Esri의 문서에 따라 라이선스를 설정해 주세요.
MainActivity.ktKotlin
// In your Application class or MainActivity
// ArcGISEnvironment.setLicense("your_license_key_here") // Optional for basic use동작 확인
여기까지 보이면 완료
ArcGIS의 지도가 나오고, 줌・팬・(3D 뷰라면) 틸트가 들으면 완료입니다.
TestArcGIS.ktJetpack Compose
@Composable
fun TestArcGIS(modifier: Modifier = Modifier) {
val mapState = rememberArcGISMapViewState(
cameraPosition = MapCameraPosition(
position = GeoPoint(35.6762, 139.6503),
zoom = 12.0,
),
)
// If the map appears, the setup is correct.
// ArcGISMapView is the 3D scene view; ArcGISMapView2D shares the same state.
ArcGISMapView(modifier = modifier, state = mapState)
}지도 디자인
ArcGISDesign은 Esri의 베이스맵에 대응합니다. 여기에 든 것은 일부이고, 실제로는 더 많은 상수가 있습니다.
ArcGISDesign
Notes
Streets
표준의 도로 지도
Imagery
위성 화상
Topographic
지형도
OsmStandard
OpenStreetMap 표준 스타일
NavigationNight
야간 내비게이션
DarkGray / LightGray
데이터를 얹는 바탕용의 옅은 스타일
잘 안 될 때
지도가 읽히지 않는다
- secrets.properties의 API 키가 올바른지 확인합니다.
- Dashboard에서 키에 필요한 스코프가 붙어 있는지 확인합니다.
라이선스 오류가 나온다
- 본번 배포에서는 Esri의 문서에 따라 라이선스를 설정해 주세요.
빌드가 통과하지 않는다
- 지도 SDK의 좌표와 버전이 버전 카탈로그의 지정과 일치하는지 확인합니다.
- 저장소 정의가 settings.gradle.kts에 있는지 확인합니다(repositoriesMode가 FAIL_ON_PROJECT_REPOS이면, 모듈 쪽의 repositories는 무시됩니다).
- 여러 지도 SDK를 동시에 넣고 있는 경우는, 의존의 충돌이 없는지 ./gradlew :app:dependencies로 확인합니다.
다음
ArcGISMapView는 3D, ArcGISMapView2D는 2D입니다. 둘 다 같은 상태 객체를 공유하므로, 실행 시에 전환할 수 있습니다.