android Studio调用百度地图API(实现实时定位+地图模式切换功能)

本文介绍了在Android应用中使用百度地图API实现导航功能,包括定位、地图跟随、距离测量和地图缩放,同时处理了GFW问题以及定位权限的请求和管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开头:本次研究此功能是为了完成APP项目中的导航功能和mark标记功能,考虑到GFW问题和baidu map调用速度更快的原因,所以开始了我的百度地图调用初探。

开发学习工具:GPT-4、CSDN

学习链接:Android 程序开发——百度地图的使用(三) 地图定位(定位+跟随+距离测量+地图自适应缩放)_地图根据两点距离 显示地图缩放-CSDN博客android百度地图(实现定位)。六_locationmode.normal-CSDN博客(特别感谢两位大佬的无私分享,让我一步步思路变得越来越清晰,对原理的掌握越来越透彻)

步骤:

一、参考官方开发文档Android地图SDK | 百度地图API SDK

强烈建议开发调用baidumap api的时候先去仔细看看官方的开发文档,会很清晰!

二、具体过程

1、引入SDK那些基础的就不写了,大家可以首选参考官方文档

2、具体写一下代码逻辑

①//在使用SDK各组件之前初始化context信息,传入ApplicationContext

②初始化定位

③请求定位权限

④获取地图控件引用

⑤注册LocationListener监听器

⑥启动定位功能

⑦开启地图定位图层

⑧通过LocationClientOption设置LocationClient相关参数

设置locationClientOption

以上是onCreate中的内容,其中第一步Application需要自己创建一个,LocationListener监听器写在本activity中就可以。两个点注意一下就可以

以下是具体代码

AppLication
import com.baidu.mapapi.CoordType;
import com.baidu.mapapi.SDKInitializer;

public class AppLication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // 在使用 SDK 各组间之前初始化 context 信息,传入 ApplicationContext
        // 默认本地个性化地图初始化方法
        SDKInitializer.initialize(getApplicationContext());
        // 自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.
        // 包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
        SDKInitializer.setCoordType(CoordType.BD09LL);
    }
}
MapNavigationActivity.class
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.Toast;

import com.baidu.location.BDAbstractLocationListener;
import com.baidu.location.BDLocation;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.CoordType;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值