一·百度地图API准备

1.下载百度地图的SDK,下载地址为:​​​​​​https://lbsyun.baidu.com/index.php?title=android-locsdk/geosdk-android-download

2.配置百度地图,获取SHA1:

win+R键后打开Windows运行闯,输入:

cd .android

然后执行命令符:(默认的密码库口令为:android)

keytool -list -v -keystore debug.keystore

输入默认密码后:

图中蓝线覆盖掉的即为SHA,即是要向百度提交的。

3.配置Android Studio

这个步骤官方网站里有详尽的解释和不同的操作方法,在此不多赘述,贴上链接:androidsdk | 百度地图API SDK (baidu.com)

二.工程项目配置及部分代码

在工程的“ AndroidManifest.xml ”文件添加key和Service:

<application>  <meta-data  android:name="com.baidu.lbsapi.API_KEY"  android:value="开发者 key" />
</application>
<meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="45tGBVlLaoSpxsYFToVf7aytUMHfdGQ6"
</meta-data>
<serviceandroid:name="com.baidu.location.f"android:enabled="true"android:process=":remote">
</service>

在app下的build.gradle中android先将SDK引用语句添加进去结构如下

sourceSets {main {jniLibs.srcDirs = ['libs']}
}

在<application/>外部添加如下权限声明:

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

部分Mainactivity代码:

package com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.widget.TextView;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.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 = null;private LocationClient mLocationClient = null;private TextView mtextView;// 是否是第一次定位private boolean isFirstLocate = true;// 当前定位模式private MyLocationConfiguration.LocationMode locationMode;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取地图控件引用mMapView = findViewById(R.id.bmapView);//获取文本显示控件mtextView = findViewById(R.id.text_tishi);// 得到地图mBaiduMap = mMapView.getMap();// 开启定位图层mBaiduMap.setMyLocationEnabled(true);//定位初始化mLocationClient = new LocationClient(this);//通过LocationClientOption设置LocationClient相关参数LocationClientOption option = new LocationClientOption();option.setOpenGps(true); // 打开gpsoption.setCoorType("bd09ll"); // 设置坐标类型option.setScanSpan(1000);// 可选,设置地址信息option.setIsNeedAddress(true);//可选,设置是否需要地址描述option.setIsNeedLocationDescribe(true);//设置locationClientOptionmLocationClient.setLocOption(option);//注册LocationListener监听器MyLocationListener myLocationListener = new MyLocationListener();mLocationClient.registerLocationListener(myLocationListener);//开启地图定位图层mLocationClient.start();}

在xml布局文件中添加容器:

 <com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapView"android:layout_width="match_parent"android:layout_height="match_parent"android:clickable="true" />

三.结果展示:

   因为在这里使用的是Android studio里的虚拟设备,所以定位并不是我当时所在的定位,解决办法在下:

 

Build APK安装包,locate该安装包并发送到手机:

通过数据线发送到手机上后即可安装:

 在此得提醒,首先,得注意与真实手机系统的兼容性,还有,这个存在弄坏真实手机的可能性,不太建议大家尝试,如果想看看做的应用在真实手机上的运行效果,建议大家使用旧的手机。

真实手机上运行的结果:

下面是完整代码的仓库地址:Tycanfly/My_map

*不建议大家使用手机真实

移动开发实验之百度地图定位app的开发相关推荐

  1. 移动开发作业4——百度地图定位APP

    目录 一.百度SDK使用流程详解 1.注册百度开发者账号 2.创建自己的应用 3.获取SHA1和包名 4.应用创建完成 5.Android Studio配置 二.在Android studio中显示地 ...

  2. 百度地图定位(移动开发第四次作业)

    百度地图定位APP 一.注册和获取密钥 1.注册 2.获取密钥 二.导入百度地图开发包 1.下载开发包 2.将Jar包添加至项目 三.显示地图 1. 配置AndroidManifest.xml文件 2 ...

  3. LBS 百度地图定位APP

    开发百度地图定位APP,显示出当前位置坐标. 显示地图: 第一步 配置AndroidManifest.xml文件 1.配置AndroidManifest.xml文件 在<application& ...

  4. 微信企业号开发:微信考勤百度地图定位,错误修正二

    在之前的博客中微信企业号开发:微信考勤百度地图定位,错误修正介绍了一种修正百度地图错误的方法,就是使用高德地图修正.但经过近一年.近两千人的使用发现,在百度地图出现定位错误时,通过HTML5获取的经纬 ...

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

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

  6. AS百度地图定位APP

    文章目录 实验内容 一.前期准备 二.主要代码实现 1.首先配置清单文件 2.配置activity_main.xml 3.配置Mainactivity.java 三.实验结果 代码仓库 实验内容 根据 ...

  7. 微信企业号开发:微信考勤百度地图定位,错误修正

    在使用百度地图进行微信考勤时,遇到很多问题,尤其是定位问题,我知道定位有偏差,但使用百度地图,几十次后,偶尔一次会错的离谱,例如直接就定位到了外省,例如我一直在西安,一次定位到了天津,一次定位到了石家 ...

  8. 微信企业号开发:微信考勤百度地图定位二

    使用微信考勤百度地图定位中的方法定位,可以定位到一个具体的位置某省某市某区某路某号,总是让人感觉显示不是很友好,如果直接显示,软件园,科技园之类的是不是更好呢?于是查了一下百度地图的相关文档,其实也很 ...

  9. 微信企业号开发:微信考勤百度地图定位

    之前在微信企业号开发:微信考勤中使用了百度地图的定位组件,但发现在部分手机上会出现定位失败的提示,于是有研究了一下百度地图.原来使用的Web组件百度不打算更新了,也是重新查了一下百度地图的其他API, ...

最新文章

  1. Android 无法监听安装,Android关于apk安装成功广播监听
  2. php输出股票价格代码,实时抓取YAHOO股票报价的php代码_PHP教程 - strrpos
  3. Mysql Packet for query is too large解决方法
  4. 递归算法,JavaScript实现
  5. ios打不开html文件,在DocumentsWeb目录中打开UIWebview时,ios-css和js在html文件中无法链接...
  6. 【知云】第十期:如何保障云上游戏安全?云盾+高防IP筑起云上安全高墙
  7. express入门学习(一)
  8. java.io.FileWriter class doesn’t use UTF-8 by default
  9. 【论文笔记_自监督知识蒸馏】Refine Myself by Teaching Myself : Feature Refinement via Self-Knowledge Distillation
  10. IT帮2019年2月线下活动【定义工作,解读自我】之站桩练习
  11. 使用formData对象提交表单并上传图片
  12. ajax提交验证非空,5.验证用户名是否已经被注册:AJAXC请求
  13. 【ArcGIS风暴】ArcGIS标注和注记的区别及用法案例详解
  14. 50欧姆 50Ω 同轴双端口衰减器(DC-40GHz ;2W---10KW)
  15. HMM隐马尔可夫模型解决的问题及推导过程
  16. 古希腊神话故事:菲勒美拉
  17. 微信生态的优劣,将决定微信电商的未来
  18. 为什么在抖音直播间打字别人看不见,所有抖音直播间看不见我说话
  19. HTML+CSS从入门到入土
  20. 慕课网Flask高级编程实战-7.静态文件、模板、消息闪现与Jinja2

热门文章

  1. 复旦邱锡鹏新作:单机微调650亿参数大模型,业内人士:对大模型普及意义重大...
  2. 理发店里看到的成功格言
  3. CSS3 greyscale 实现元素转换成黑白色(灰色、置灰)
  4. 2020年10月汽车行业网络关注度分析月度报告
  5. [转载]Black-Scholes 模型中 d1,d2 是怎么得到的?如何理解 Black-Scholes 模型?
  6. 中秋国庆福利四连击 之 星球图书抽奖
  7. (二十二)unity Shader——————非真实感渲染:上篇(卡通风格的渲染)
  8. JAVA 上传图片时 压缩后上传
  9. cv2.waitKey的入门级理解
  10. QTableWidget用法,qt表格使用