MapBox Android版开发 1 v11配置

前言

本文主要介绍如何使用MapBox SDK V11版开发Android地图应用。

准备工作:

  • 注册MapBox账户
  • 获取公钥
  • 获取私钥(确保选中Downloads:Read,注意申请后只有一次机会复制机会)

主要步骤:

  1. 创建工程
  2. 配置地图
  3. 显示地图
  4. 运行效果

MapBox V11 配置

版本兼容性

Version v11
Minimum Android Version 5.0 (API level 21)
Kotlin 1.6.0 or later
Target/Compile SDK Version 33
NDK Version 23.2.8568313
OpenGL OpenGL ES 3.0

创建工程

  1. AndroidStudio 选择菜单 FileNewNew Project... ,打开 New Project 对话框;
  2. 选择模板 Empty Views Activity,单击Next
  3. 项目参数参考如下,设置后,单击Finish
参数
Name mapdemo
Package name com.example.mapdemo
Save location 默认路径或自定义路径即可
Language kotlin
Minimum SDK 默认推荐即可
Build configuration language Kotlin DSL (build.gradle.kts)
  1. 至此创建项目完成,目录结构如下:
├── app
│   ├── build.gradle.kts
│   ├── libs
│   ├── proguard-rules.pro
│   └── src
│       ├── androidTest
│       ├── main
│       └── test
├── build.gradle.kts
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── local.properties
└── settings.gradle.kts

配置地图

配置私钥

  1. 找到 Gradle 用户主文件夹 «USER_HOME»/.gradle
  2. 创建文件gradle.properties,即 «USER_HOME»/.gradle/gradle.properties
  3. 将私钥添加到 gradle.properties文件中:
MAPBOX_DOWNLOADS_TOKEN=YOUR_SECRET_MAPBOX_ACCESS_TOKEN

配置公钥

  1. app 模块中创建文件 app/src/main/res/values/mapbox_access_token.xml
  2. 将公钥添加到 mapbox_access_token.xml 文件中。
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
    <string name="mapbox_access_token" translatable="false" tools:ignore="UnusedResources">YOUR_MAPBOX_ACCESS_TOKEN</string>
</resources>

配置仓库

  • 打开文件 settings.gradle.kts ,声明 Mapbox Downloads API 的 maven 。其中:
    • 用户名为 mapbox
    • 密码为私钥(从文件 «USER_HOME»/.gradle/gradle.properties 中获取)。
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        // Mapbox Maven repository
        maven {
            url = uri("https://api.mapbox.com/downloads/v2/releases/maven")
            // Do not change the username below. It should always be "mapbox" (not your username).
            credentials.username = "mapbox"
            // Use the secret token stored in gradle.properties as the password
            credentials.password = providers.gradleProperty("MAPBOX_DOWNLOADS_TOKEN").get()
            authentication.create<BasicAuthentication>("basic")
        }
    }
}

配置依赖

  • 文件 app/build.gradle.ktsdependencies中添加依赖项。
dependencies {
    implementation("com.mapbox.maps:android:11.6.0")
}

配置权限

  • 文件 AndroidManifest.xmlmanifest标签中添加定位权限。
<manifest>
    <!-- Always include this permission -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    <!-- Include only if your app benefits from precise location access. -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
</manifest>

显示地图

布局文件

  • activity_main.xml 中添加地图视图。
<com.mapbox.maps.MapView
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:mapbox_cameraTargetLat="32.2857965"
    app:mapbox_cameraTargetLng="104.293174"
    app:mapbox_cameraZoom="2"
    app:mapbox_cameraPitch="0.0"
    app:mapbox_cameraBearing="0.0" />

运行效果

效果图v11.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容