MapBox Android版开发 1 配置

2024-08-21 16:36
文章标签 配置 android 开发 mapbox

本文主要是介绍MapBox Android版开发 1 配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MapBox Android版开发 1 配置

  • 前言
  • MapBox V9 配置
    • 创建工程
    • 配置地图
      • 配置私钥
      • 配置公钥
      • 配置仓库
      • 配置依赖
      • 配置权限
      • 地图初始化
    • 显示地图
      • 布局文件
      • 地图Activity
    • 运行效果
  • MapBox V11 配置
    • 创建工程
    • 配置地图
      • 配置私钥
      • 配置公钥
      • 配置仓库
      • 配置依赖
      • 配置权限
    • 显示地图
      • 布局文件
    • 运行效果

前言

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

准备工作:

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

主要步骤:

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

MapBox V9 配置

创建工程

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

配置地图

配置私钥

  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/developer-config.xml
  2. 将公钥添加到 developer-config.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 ,声明 Mapbox Downloads APImaven 。其中:
    • 用户名为 mapbox
    • 密码为私钥(从文件 «USER_HOME»/.gradle/gradle.properties 中获取)。
dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {google()mavenCentral()maven {url 'https://api.mapbox.com/downloads/v2/releases/maven'authentication {basic(BasicAuthentication)}credentials {// Do not change the username below.// This should always be `mapbox` (not your username).username = 'mapbox'// Use the secret token you stored in gradle.properties as the passwordpassword = providers.gradleProperty("MAPBOX_DOWNLOADS_TOKEN").get()}}}
}

配置依赖

  • 文件 app/build.gradledependencies中添加依赖项。
dependencies {implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.7.1'
}

配置权限

  • 文件 AndroidManifest.xml manifest标签中添加定位权限。
<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>

地图初始化

  1. 自定义Application类;
  2. AndroidManifest.xml 中声明该Application类;
  3. 初始化地图。
  • DemoApp 类完整代码如下:
package com.example.mapdemo;import android.app.Application;import com.mapbox.mapboxsdk.Mapbox;public class DemoApp extends Application {@Overridepublic void onCreate() {super.onCreate();Mapbox.getInstance(this, getString(R.string.mapbox_access_token));}
}
  • 文件 AndroidManifest.xmlapplication中配置自定义Application类。
<applicationandroid:name=".DemoApp"
>
</application>

显示地图

布局文件

  • activity_main.xml 中添加地图视图。
<com.mapbox.mapboxsdk.maps.MapViewandroid: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_uiCompassGravity="start|top" />

地图Activity

  • MainActivity管理地图视图生命周期。完整代码如下:
package com.example.mapdemo;import android.os.Bundle;import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;import com.mapbox.mapboxsdk.maps.MapView;
import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
import com.mapbox.mapboxsdk.maps.Style;public class MainActivity extends AppCompatActivity {MapView mapView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mapView = findViewById(R.id.mapView);mapView.onCreate(savedInstanceState);mapView.getMapAsync(new OnMapReadyCallback() {@Overridepublic void onMapReady(@NonNull MapboxMap mapboxMap) {mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() {@Overridepublic void onStyleLoaded(@NonNull Style style) {// Map is set up and the style has loaded. Now you can add data or make other map adjustments}});}});}@Overridepublic void onResume() {super.onResume();mapView.onResume();}@Overrideprotected void onStart() {super.onStart();mapView.onStart();}@Overrideprotected void onStop() {super.onStop();mapView.onStop();}@Overridepublic void onPause() {super.onPause();mapView.onPause();}@Overridepublic void onLowMemory() {super.onLowMemory();mapView.onLowMemory();}@Overrideprotected void onDestroy() {super.onDestroy();mapView.onDestroy();}@Overrideprotected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);mapView.onSaveInstanceState(outState);}}

运行效果

在这里插入图片描述

MapBox V11 配置

版本兼容性

Versionv11
Minimum Android Version5.0 (API level 21)
Kotlin1.6.0 or later
Target/Compile SDK Version33
NDK Version23.2.8568313
OpenGLOpenGL ES 3.0

创建工程

  1. AndroidStudio 选择菜单 FileNewNew Project... ,打开 New Project 对话框;
  2. 选择模板 Empty Views Activity,单击Next
  3. 项目参数参考如下,设置后,单击Finish
参数
Namemapdemo
Package namecom.example.mapdemo
Save location默认路径或自定义路径即可
Languagekotlin
Minimum SDK默认推荐即可
Build configuration languageKotlin 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 repositorymaven {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 passwordcredentials.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.xml manifest标签中添加定位权限。
<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.MapViewandroid: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" />

运行效果

在这里插入图片描述

这篇关于MapBox Android版开发 1 配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1093700

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来