Android初学六之在应用中简单调用Android百度地图API SDK

您所在的位置:网站首页 怎样用百度地图定位手机位置信息 Android初学六之在应用中简单调用Android百度地图API SDK

Android初学六之在应用中简单调用Android百度地图API SDK

2024-07-13 13:58| 来源: 网络整理| 查看: 265

目录 0 实验环境1 界面展示1.1 显示地图1.2 显示定位 2 功能说明3 配置调用地图SDK的步骤3.1 注册百度地图开发者账号,并完成应用的开发密钥申请3.2 Android Studio配置 4 核心代码4.1 显示地图4.2 显示定位 5 代码仓库6 总结

0 实验环境

在Android Studio中进行有关代码的编写和界面效果展示。

有关文档资料和步骤可参考Android百度地图API的官网。

1 界面展示 1.1 显示地图

在这里插入图片描述

1.2 显示定位

在这里插入图片描述

2 功能说明

(1)实现显示地图的功能; (2)实现显示定位的功能。

3 配置调用地图SDK的步骤 3.1 注册百度地图开发者账号,并完成应用的开发密钥申请

在这里注册账号的步骤不再介绍,只需到百度开发者平台按步骤申请注册即可。

完成注册后,就需进行创建应用,并申请开发密钥AK。 (1)首先需在AS中新建项目,用于调用百度地图SDK; (2)在百度开发者平台上,注册和获取密钥,详细步骤官网上已讲述的非常详细——注册和获取密钥参考文档; 在这里需要注意获取SHA1时,每个人的命令有所不同。 注意1:首先需要找到Android Studio所用的JDK的目录,我的是G:\androidStudio\Android Studio\jre\bin\ 注意2:然后需要找到keystore的路径,我的是C:\Users\Administrator\.android\debug.keystore 最后在AS的命令行中切换到G:\androidStudio\Android Studio\jre\bin\下, 在这里插入图片描述 使用keytool -list -v -keystore C:\Users\Administrator\.android\debug.keystore -alias androiddebugkey即可获取到SHA1 在这里插入图片描述 在百度地图开发者官网上成功注册应用后,即可看到该应用的SK码,后续在Android项目中会用到。 在这里插入图片描述

3.2 Android Studio配置

配置过程同样可参考官网给出的文档教程

注意1:下载SDK本地依赖时现只需下载基础的服务包 在这里插入图片描述 选择下载jar包的方式: 在这里插入图片描述 最后配置完成后,会发现在app目录的build.gradle的dependencies块中生成了工程所依赖的jar文件的对应说明 在这里插入图片描述

4 核心代码 4.1 显示地图

1.配置AndroidManifest.xml文件

2.在布局文件中添加地图容器

3.地图初始化

public class DemoApplication extends Application { @Override public void onCreate() { super.onCreate(); //在使用SDK各组件之前初始化context信息,传入ApplicationContext SDKInitializer.initialize(this); //自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型. //包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。 SDKInitializer.setCoordType(CoordType.BD09LL); } }

4.创建地图Activity,管理MapView生命周期

public class MainActivity extends Activity { private MapView mMapView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取地图控件引用 mMapView = (MapView) findViewById(R.id.bmapView); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 mMapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 mMapView.onPause(); } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 mMapView.onDestroy(); } } 4.2 显示定位

1.配置AndroidManifest.xml文件 加入权限:

添加服务:

2.编写MainActivity.java文件

public class MainActivity extends Activity { private MapView mMapView = null; private BaiduMap mBaiduMap; private LocationClient mLocationClient; private boolean ifFrist = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取地图控件引用 mMapView = (MapView) findViewById(R.id.bmapView); //开启地图的定位图层 mBaiduMap.setMyLocationEnabled(true); //定位初始化 mLocationClient = new LocationClient(this); //通过LocationClientOption设置LocationClient相关参数 LocationClientOption option = new LocationClientOption(); option.setOpenGps(true); // 打开gps option.setCoorType("bd09ll"); // 设置坐标类型 option.setScanSpan(1000); //设置locationClientOption mLocationClient.setLocOption(option); //注册LocationListener监听器 MyLocationListener myLocationListener = new MyLocationListener(); mLocationClient.registerLocationListener(myLocationListener); //开启地图定位图层 mLocationClient.start(); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 mMapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 mMapView.onPause(); } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 mMapView.onDestroy(); } //通过继承抽象类BDAbstractListener并重写其onReceieveLocation方法来获取定位数据,并将其传给MapView public class MyLocationListener extends BDAbstractLocationListener { @Override public void onReceiveLocation(BDLocation location) { //mapView 销毁后不在处理新接收的位置 if (location == null || mMapView == null) { return; } MyLocationData locData = new MyLocationData.Builder() .accuracy(location.getRadius()) // 此处设置开发者获取到的方向信息,顺时针0-360 .longitude(location.getLongitude()) .latitude(30.583239) // 自定义纬度 .longitude(location.getLongitude()) .longitude(114.336702) // 自定义经度 .direction(location.getDirection()) .build(); mBaiduMap.setMyLocationData(locData); MyLocationConfiguration configuration = new MyLocationConfiguration( MyLocationConfiguration.LocationMode.COMPASS, false, null, 0xAAFFFF88, 0xAA00FF00); mBaiduMap.setMyLocationConfiguration(configuration); if (ifFrist) { LatLng ll = new LatLng(location.getLatitude(), location.getLongitude()); MapStatus.Builder builder = new MapStatus.Builder(); builder.target(ll); builder.zoom(18.0f); mBaiduMap.setMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); //放大层级 ifFrist = false; } } } } 5 代码仓库

具体代码已上传至gitee代码仓库

6 总结

学习了如何在应用中简单调用Android百度地图API SDK: (1)实现显示地图的功能; (2)实现显示定位的功能。

后续会继续更新有关Android设计的内容! (注:第23次发文,如有错误和疑问,欢迎在评论区指出!) ——2021.12.2



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3