1、准备工作

首先在百度官网上请求到sha1密钥和创建应用。详情查看下面连接百度密钥申请
请求好连接并创建自己的应用,注意包名填自己创建应用的包名。

之后完成地图显示操作,具体操作可见地图显示基本配置
值得注意的是
这里的key填写自己申请的应用的key

郭辉  22:37:25
package com.example.map;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import com.baidu.location.BDAbstractLocationListener;
import com.baidu.location.BDLocation;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MyLocationConfiguration;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.model.LatLng;public class MainActivity extends AppCompatActivity {private MapView mMapView = null;private BaiduMap mBaiduMap;private LocationClient mLocationClient;private BitmapDescriptor mMarker;private boolean ifFrist = true;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取地图控件引用mMapView = (MapView) findViewById(R.id.bmapView);mBaiduMap = mMapView.getMap();mLocationClient = new LocationClient(this);MyLocationListener myLocationListener = new MyLocationListener();mLocationClient.registerLocationListener(myLocationListener);//覆盖物 用于显示当前位置mMarker = BitmapDescriptorFactory.fromResource(R.drawable.icon_start);mBaiduMap.setMyLocationEnabled(true);LocationClientOption option = new LocationClientOption();//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);option.setOpenGps(true); // 打开gpsoption.setCoorType("bd09ll"); // 设置坐标类型option.setScanSpan(1000);option.setIsNeedAddress(true);mLocationClient.setLocOption(option);mLocationClient.start();}@Overrideprotected void onResume() {super.onResume();//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理mMapView.onResume();}@Overrideprotected void onPause() {super.onPause();//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理mMapView.onPause();}@Overrideprotected void onDestroy() {mLocationClient.stop();mMapView.onDestroy();//mMapView = null;super.onDestroy();}public class MyLocationListener extends BDAbstractLocationListener {@Overridepublic void onReceiveLocation(BDLocation location) {//mapView 销毁后不在处理新接收的位置if (location == null || mMapView == null){return;}MyLocationData locData = new MyLocationData.Builder().accuracy(location.getRadius())// 此处设置开发者获取到的方向信息,顺时针0-360.latitude(location.getLatitude()).longitude(location.getLongitude()).direction(location.getDirection()).build();mBaiduMap.setMyLocationData(locData);MyLocationConfiguration configuration = new MyLocationConfiguration(MyLocationConfiguration.LocationMode.NORMAL, false, mMarker);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;}}}
}package com.example.map;import android.app.Application;import com.baidu.mapapi.CoordType;
import com.baidu.mapapi.SDKInitializer;public class DempApplication extends Application {@Overridepublic void onCreate() {super.onCreate();//在使用SDK各组件之前初始化context信息,传入ApplicationContextSDKInitializer.initialize(this);//自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.//包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。SDKInitializer.setCoordType(CoordType.BD09LL);}
}

MainActivity和DemoApplication的代码
比较重要的还有mainifist和gradle配置文件

plugins {id 'com.android.application'
}android {compileSdk 31defaultConfig {applicationId "com.example.map"minSdk 21targetSdk 31versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}sourceSets {main {jniLibs.srcDir 'libs'}}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}compileOptions {sourceCompatibility sourceCompatibilitytargetCompatibility 1.8}
}dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])implementation 'androidx.appcompat:appcompat:1.2.0'implementation 'com.google.android.material:material:1.3.0'implementation 'androidx.constraintlayout:constraintlayout:2.0.4'testImplementation 'junit:junit:4.13.2'androidTestImplementation 'androidx.test.ext:junit:1.1.2'androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'implementation files('libs/BaiduLBS_Android.jar')}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.map"><!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划,POI检索等 --><uses-permission android:name="android.permission.INTERNET" /><!-- 获取网络状态,根据网络状态切换进行数据请求网络转换 --><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!-- 读取外置存储。如果开发者使用了so动态加载功能并且把so文件放在了外置存储区域,则需要申请该权限,否则不需要 --><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><!-- 写外置存储。如果开发者使用了离线地图,并且数据写在外置存储区域,则需要申请该权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!-- 这个权限用于进行网络定位 --><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><!-- 这个权限用于访问GPS定位 --><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><applicationandroid:name=".DempApplication"android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/Theme.Map"><activityandroid:name=".MainActivity"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="lIKwwcklC62QeeRjfy5DSxM3KLFXhm9u" /><service android:name="com.baidu.location.f"android:enabled="true"android:process=":remote"> </service></application></manifest>

至于最后结果由于报出我的sha1,key和包不匹配,但我检查多遍也不知道哪里不匹配

Android百度地图实现定位相关推荐

  1. android百度地图更换定位图标,android百度地图定位,改变MyLocationOverlay默认图标(原始为蓝色点)(两种方法)...

    开放地图API无外乎google ,百度,高德等.其它的还有很多,不过比较好用的就这三种了,如果不需要出国(台湾例外),则最好使用百度地图,性能比高德好的多,无聊的时候自己可以测试测试.. 下面我简单 ...

  2. Android百度地图之定位图层

    来自:http://blog.csdn.net/u010142437/article/details/11577077 在使用百度地图结合GPS进行定位一文中,我们已经介绍了利用GPS结合百度地图进行 ...

  3. android 百度地图拖动定位,百度地图获取定位,实现拖动marker定位,返回具体的位置名...

    body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑"; ...

  4. android百度地图sdk定位权限,Android:使用百度地图SDK实现定位:下载SDK、申请密钥、动态获得Android权限...

    最近想实现一个打卡的功能,想到可以利用百度地图的SDK.网上有很多关于百度地图SDK定位.地图功能应用的demo,这部分倒不是很困难.但网上很多博客写的内容一般都着重于代码部分,很多下载配置和编译器设 ...

  5. Android 百度地图获取定位信息并实时传给后台

    最近公司提了一个小case,因为公司物流师傅配送完货物后,通常回仓库都是空车,而这是严重的资源浪费,所以领导就给了一个小case,实时定位司机路线,先建立司机行车档案,在考虑其他业务,反正也是比较空, ...

  6. android 百度地图 室内定位,百度地图4.0正式发布:室内定位功能亮相

    图为王府井百货4层室内图 新浪科技讯 9月21日下午消息,百度地图今日正式推4.0版本,在iOS及Android平台上线,拥有免费语音导航.室内定位.实时公交.生活搜索等功能,百度地图将由出行助手向生 ...

  7. Android百度地图开发定位和路线导航

    在写之前要先加入百度地图sdk的jar包从百度地图开发者官网上就能下载 百度地图sdk下载 官网(可翻墙选择):http://developer.android.com/sdk/index.html ...

  8. Android 百度地图标点定位,动画标点

    前期实现与"定位"中步骤相同,参考: 代码片段中: import android.content.Intent; import android.support.v7.app.App ...

  9. android百度地图获取定位信息吗,android使用百度地圖定位(獲取當前經緯度和地址信息)...

    首先,當然是把需要用到的包導入到工程項目中.(沒有包的自己去百度API官網下載) 把 baidumapapi_v3_0_0.jar 和 locSDK_4.2.jar復制粘貼到項目的libs目錄下, 然 ...

最新文章

  1. 聊聊这道【快手】面试题
  2. 浅谈O2O产品信息结构化
  3. ajax默认什么方法,ajax设置默认值ajaxSetup()方法
  4. vc6.o--fatal error C1010错误的解决
  5. Firefox下强制页面缓存失效的设置方法
  6. R语言含中文数据导入的方法
  7. ajax前台转换json数据库,基于jQuery的ajax功能实现web service的json转化
  8. 2018最新版硬盘装系统,不要U盘也能装
  9. linux常用目录操作命令
  10. 代码生成工具系列-----代码生成工具(CodeEasy)介绍
  11. iPad mini2 Vieux降级ios10.3.3 问题解决合集
  12. 完整的连接器设计手册_连接器设计中,仿真技术提供了力学理论依据
  13. Ember copy array
  14. java唯一订单号_java高并发下唯一订单号生成器【16位数字订单号】
  15. IPS需意识到高级闪避技术(AET)的危害
  16. 爱乐乐iLELE®益生菌新品上市由妈咪爱研究中心出品
  17. php下载安装方法,phpstudy 2016免费版-php开发环境下载 v2016.11.03 附带安装教程 - 安下载...
  18. 区块链技术以太坊简介
  19. Word 同时设置中文字体和英文字体
  20. LayaAir Laya.Handle.create

热门文章

  1. 开发问题记录(这部分还是比较零碎)
  2. 根据图片url下载图片
  3. android webview 铺满_统编三年级上《铺满金色巴掌的水泥路》学习笔记
  4. 题解 P1120 【小木棍 [数据加强版]】
  5. 工厂模式三部曲之一_简单工厂模式
  6. axios快速入门总结
  7. ae等高线_Topograph软件下载|Topograph(AE等高线地图插件)官方最新版v1.0 下载_当游网...
  8. 基于swiper实现旋转木马轮播图(适配移动端)
  9. 国内的聚宽量化平台好不好用?
  10. ###web前端###html