第一步:注册百度开发者账号 http://lbsyun.baidu.com/,下载对应的jar和Key

第二步:创建应用

填写正确的SHA1和应用的包名,并且下载

第三步:解压上面的SDK_Lib压缩包文件

libs下放入jar包,并且添加到依赖

main下面新建文件夹JNIlibs放入这些文件

第四步:AndroidManifest.xml文件配置

加入所需要的权限

<!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划,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" />

application中添加

 <meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="value"></meta-data>

value 是创建应用的

布局文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapView"android:layout_width="match_parent"android:layout_height="match_parent"android:clickable="true" /></android.support.constraint.ConstraintLayout>

MainActivity

package com.yuan.testbaidumap;import android.Manifest;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapStatusUpdate;
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;private BaiduMap mBaiduMap;private boolean isFirstLoc = true;private MyLocationConfiguration.LocationMode locationMode; //当前定位模式@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);SDKInitializer.initialize(getApplicationContext());setContentView(R.layout.activity_main);mMapView = findViewById(R.id.bmapView);mBaiduMap = mMapView.getMap();LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {return;}locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,1,new LocationListener() {@Overridepublic void onLocationChanged(Location location) {locationUpdates(location);}@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {}@Overridepublic void onProviderEnabled(String provider) {}@Overridepublic void onProviderDisabled(String provider) {}});Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);locationUpdates(location);}private void locationUpdates(Location location) {if (location != null) {LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());Log.i("Location", "纬度:" + location.getLatitude() + "经度:" + location.getLongitude());if (isFirstLoc) {MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll);mBaiduMap.animateMapStatus(u); // 设置地图位置isFirstLoc = false;}// 构造定位数据MyLocationData locationData = new MyLocationData.Builder().accuracy(location.getAccuracy()).direction(100) // 设置方向信息.latitude(location.getLatitude()) // 设置维度坐标.longitude(location.getLongitude()) // 经度.build();mBaiduMap.setMyLocationData(locationData); //设置定位数据BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher);locationMode = MyLocationConfiguration.LocationMode.NORMAL; // 设置定位模式MyLocationConfiguration configuration = new MyLocationConfiguration(locationMode, true, bitmapDescriptor);mBaiduMap.setMyLocationConfiguration(configuration); // 显示定位图标} else {Log.i("Location","没有获取到GPS信息");}}@Overrideprotected void onStart() {super.onStart();mBaiduMap.setMyLocationEnabled(true); // 开启定位图层}@Overrideprotected void onResume() {super.onResume();mMapView.onResume();}@Overrideprotected void onPause() {super.onPause();mMapView.onPause();}@Overrideprotected void onStop() {super.onStop();mBaiduMap.setMyLocationEnabled(false); // 停止图层}@Overrideprotected void onDestroy() {super.onDestroy();mMapView.onDestroy();mMapView = null;}
}

测试如果没有数据,请到室外或者空旷的地方。

百度地图详解使用,显示自己的当前位置BaiduMap相关推荐

  1. react引入百度地图详解(配置智能检索反向地址解析获取实际地标)

    获取百度地图密钥 获取密钥流程(网址:https://blog.csdn.net/chenyueliu/article/details/106055426) 在index.html中引入 在***** ...

  2. iOS中 百度地图详解 韩俊强的博文

    需要准备工作按照下图引进类库 需要添加 添加的两个字符串为:NSLocationWhenInUseUsageDescription  /  NSLocationAlwaysUsageDescripti ...

  3. 我的世界天空之城服务器位置,我的世界天空之城建筑地图详解(附存档)

    我的世界空岛生存地图详解 首次制作的空岛地图.那废话就不多说了,那下面就一起来看看下面的这个玩家首次制作的空岛生存地图吧!喜欢的玩家还可以下载下来玩玩哦~ 游戏园我的世界官方群: 325049520 ...

  4. 百度地图调用加载显示Marker,并添加点击事件

    百度地图调用加载显示Marker,并添加点击事件 注册百度开发者账号,申请应用AK 百度地图开发平台官网 点击右上角控制台,选择创建应用 创建应用,勾选浏览器端,白名单填写* 注:如上线更改为公网IP ...

  5. Android百度地图定位APP,显示出当前位置坐标

    Android百度地图定位APP,显示出当前位置坐标 官网配置百度地图 通过CMD命令获取SHA1 在百度的官网里面创建一个应用 Android配置 显示地图即定位 配置 AndroidManifes ...

  6. 安卓学习专栏——百度地图(6)移动到我的位置(图文+代码)

    步骤 系列文章 前言 介绍api 实现效果 activity_main.xml AndroidManifest.xml MainActivity.java(修改) 附录.参考资料 下载资源 总结 系列 ...

  7. 安卓使用osmdroid显示谷歌地图、高德地图及离线地图详解

    最近公司有这个需求,需要能切换不同的地图,并且数据需要互通,如果引入每一个地图的SDK(例如百度地图SDK.高德地图SDK.谷歌地图等)的话apk包就太大了,而且操作数据及操作地图就会变得特别麻烦,所 ...

  8. 百度地图API调用实例之地址标注与位置显示

    之前弄了个谷歌地图API标注的调用实例,后来要求改成百度地图. 感谢主,通过网上资料(百度地图API,百度地图API详解之地图标注)收集及研究, 终于把百度地图标注和显示功能实现出来了,具体实现方法如 ...

  9. 苹果谷歌微软三国混战地图详解(图)

    2019独角兽企业重金招聘Python工程师标准>>> 苹果谷歌微软三国战争地图 < 内容模块:单图 end >< 内容模块:段落 begin >< & ...

最新文章

  1. struts2.xml详解
  2. python时间序列小波分析_python时间序列分析
  3. 数据结构与算法-day3-归并 快速排序
  4. JavaScript神奇的魔法代码
  5. mysql 导出dmp文件_MySQL数据库基础讲解
  6. java配置openjdk_Java大新闻不断涌现:Java SE 6和OpenJDK
  7. 前端学习(2260)高校案例
  8. LeetCode 1955. 统计特殊子序列的数目
  9. Hive篇--搭建Hive集群
  10. 距离一个优秀程序员,你还差多少?
  11. RHELServer6.2下编译GDAL和mysql和proj4支持
  12. 路由器wifi信号测试软件,常用路由器WIFI测速效果比对
  13. C语言的程序是由什么组成
  14. 【博学谷学习记录】超强总结,用心分享 | 人工智能常用数据可视化库 matplotlib 入门(1)
  15. IT运维面试问题总结
  16. 民航票务管理系统-C语言--录入,查询,订票,退票,修改航班信息以及主菜单和子菜单。
  17. matlab绘制三维隐函数图像
  18. 常见的DNSBL(邮件黑名单),及DNSBL(邮件黑名单)的选择
  19. android支付安全机制,Android_指纹支付_安全问题_前后端交互逻辑
  20. QSL match_phrase 嵌套查询

热门文章

  1. Android 将drawable下的图片转换成bitmap、Drawable
  2. 转。WEB前端特效。统计图,3D切换图片,摇号,转盘抽奖
  3. 全球及中国冶金工业市场产量分析及投资战略决策报告2021版
  4. 华为鸿蒙2.0来了,挑战谷歌安卓APP成关键?
  5. html の第一天(上)-----适合新手入门前端
  6. [已授权] 互联网定位技术小谈
  7. 如果你在it院校学习累了,你能干什么?
  8. linux中c语言kbhit函数用法,检测按键(Linux中kbhit()函数的实现)
  9. mysql多字段修改update_MySQL学习从这里出发!
  10. 可穿戴市场掘金:VC如何看上小小的ZEPP公司