Android地图—— Mapbox 10.3.0 接入与基础使用

Mapbox初始配置:依赖添加

官网教程指引: https://docs.mapbox.com/android/maps/guides/install/
我使用的android studio版本是旧版,依赖添加方式如下:

1. 编辑 项目目录/build.gradle (设置maven库的访问);

Android Studio less than Arctic Fox (2020.3.1) and Gradle less than v6.0:
注意,是在 allprojects 内设置!

buildscript {
   
	...
}
allprojects {
   
    repositories {
   
        google()
        mavenCentral()
        maven {
   
            url 'https://api.mapbox.com/downloads/v2/releases/maven'
            authentication {
   
                basic(BasicAuthentication)
            }
            credentials {
   
                username = "mapbox"
                // Use the secret token you stored in gradle.properties as the password
                password = project.properties['MAPBOX_DOWNLOADS_TOKEN']
            }
        }
    }
}

2. 前往mapbox官网 创建账号 并 申请密钥;

Token申请地址: https://account.mapbox.com/
申请token时记得勾选 Downloads:Read 以获取从maven库下载mapbox依赖文件的许可。

创建完成之后在Token页面会有两个Token:
其中一个为初始就有的公钥;一个为你刚刚申请好的带有Downloads:Read权限的私钥。
(注意:私钥申请完成后要直接复制保存,刷新页面后会被隐藏)。

在这里插入图片描述

3. 在项目中配置公钥、私钥;

在 项目目录下的 gradle.properites 中添加以下代码,用于从maven库下载mapbox相关依赖的身份验证。

MAPBOX_DOWNLOADS_TOKEN=自己申请的私钥

res/valuses/strings.xml 文件中添加以下代码。mapbox默认你 将token放置在 strings.xml 中,在调用相关api时会 自动 在此文件夹下面获取token。

<string name="mapbox_access_token">公钥</string>

4. 在 模块目录 /build.gradle 中添加依赖;

// mapbox地图组件
implementation 'com.mapbox.maps:android:10.3.0'

5. 配置获取用户定位权限;(可选)

AndroidManifest.xml 文件中添加以下代码*(当你需要在地图上显示用户位置时才需要配置)*
注意: 还需要在代码中动态请求该权限,Mapbox也提供了PermissionsManager(可参考官网示例)工具用于动态请求权限,这里不展开)

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

可能遇到的问题:
① sync gradle文件时报warnning:
问题: Failed to resolve: com.mapbox.maps:android:10.0.3
解决: 检查自己申请的token是否带有 Downloads:Read,在创建token时记得勾选上,系统默认提供的token是不带这个scope的,需要自行申请。
————————————————————————————————————————————

MapBox部分功能的Android实现:

这部分对MapBox的主要用例的Android实现和原理进行相关解释(示例版本10.3.0)。
由于官网有kotlin代码的例子,以下功能展示均使用 java代码 进行举例。

以下介绍的功能代码我都封装到了MapBoxUtil.java文件中,可以在这个项目里面自行获取。(结合这个示例项目的代码阅读更佳哦)

效果图先行:
在这里插入图片描述

· 地图MapView的添加

layout文件中添加MapView视图:

<com.mapbox.maps.MapView
    android:id="@+id/mapview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

Java文件:

MapView mMapView = findViewById(R.id.mapview);
MapboxMap mMapboxMap = mapView.getMapboxMap();

· MapBox初始化以及地图显示:

1. 相机设置:

相机部分参数初始变量定义:

private static final double DEFAULT_LOCATION_LATITUDE = 22.55;    // 初始地图显示坐标(深圳)
private static final double DEFAULT_LOCATION_LONGITUDE = 114.06;
private static final double DEFAULT_ZOOM_VALUE = 8.0;   // 初始地图缩放大小

相机设置:

mMapboxMap.setCamera(  // 设置地图相机初始位置
        new CameraOptions.Builder
  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值