移动开发实验之百度地图定位app的开发
一·百度地图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的开发相关推荐
- 移动开发作业4——百度地图定位APP
目录 一.百度SDK使用流程详解 1.注册百度开发者账号 2.创建自己的应用 3.获取SHA1和包名 4.应用创建完成 5.Android Studio配置 二.在Android studio中显示地 ...
- 百度地图定位(移动开发第四次作业)
百度地图定位APP 一.注册和获取密钥 1.注册 2.获取密钥 二.导入百度地图开发包 1.下载开发包 2.将Jar包添加至项目 三.显示地图 1. 配置AndroidManifest.xml文件 2 ...
- LBS 百度地图定位APP
开发百度地图定位APP,显示出当前位置坐标. 显示地图: 第一步 配置AndroidManifest.xml文件 1.配置AndroidManifest.xml文件 在<application& ...
- 微信企业号开发:微信考勤百度地图定位,错误修正二
在之前的博客中微信企业号开发:微信考勤百度地图定位,错误修正介绍了一种修正百度地图错误的方法,就是使用高德地图修正.但经过近一年.近两千人的使用发现,在百度地图出现定位错误时,通过HTML5获取的经纬 ...
- Android百度地图定位APP,显示出当前位置坐标
Android百度地图定位APP,显示出当前位置坐标 官网配置百度地图 通过CMD命令获取SHA1 在百度的官网里面创建一个应用 Android配置 显示地图即定位 配置 AndroidManifes ...
- AS百度地图定位APP
文章目录 实验内容 一.前期准备 二.主要代码实现 1.首先配置清单文件 2.配置activity_main.xml 3.配置Mainactivity.java 三.实验结果 代码仓库 实验内容 根据 ...
- 微信企业号开发:微信考勤百度地图定位,错误修正
在使用百度地图进行微信考勤时,遇到很多问题,尤其是定位问题,我知道定位有偏差,但使用百度地图,几十次后,偶尔一次会错的离谱,例如直接就定位到了外省,例如我一直在西安,一次定位到了天津,一次定位到了石家 ...
- 微信企业号开发:微信考勤百度地图定位二
使用微信考勤百度地图定位中的方法定位,可以定位到一个具体的位置某省某市某区某路某号,总是让人感觉显示不是很友好,如果直接显示,软件园,科技园之类的是不是更好呢?于是查了一下百度地图的相关文档,其实也很 ...
- 微信企业号开发:微信考勤百度地图定位
之前在微信企业号开发:微信考勤中使用了百度地图的定位组件,但发现在部分手机上会出现定位失败的提示,于是有研究了一下百度地图.原来使用的Web组件百度不打算更新了,也是重新查了一下百度地图的其他API, ...
最新文章
- Android 无法监听安装,Android关于apk安装成功广播监听
- php输出股票价格代码,实时抓取YAHOO股票报价的php代码_PHP教程 - strrpos
- Mysql Packet for query is too large解决方法
- 递归算法,JavaScript实现
- ios打不开html文件,在DocumentsWeb目录中打开UIWebview时,ios-css和js在html文件中无法链接...
- 【知云】第十期:如何保障云上游戏安全?云盾+高防IP筑起云上安全高墙
- express入门学习(一)
- java.io.FileWriter class doesn’t use UTF-8 by default
- 【论文笔记_自监督知识蒸馏】Refine Myself by Teaching Myself : Feature Refinement via Self-Knowledge Distillation
- IT帮2019年2月线下活动【定义工作,解读自我】之站桩练习
- 使用formData对象提交表单并上传图片
- ajax提交验证非空,5.验证用户名是否已经被注册:AJAXC请求
- 【ArcGIS风暴】ArcGIS标注和注记的区别及用法案例详解
- 50欧姆 50Ω 同轴双端口衰减器(DC-40GHz ;2W---10KW)
- HMM隐马尔可夫模型解决的问题及推导过程
- 古希腊神话故事:菲勒美拉
- 微信生态的优劣,将决定微信电商的未来
- 为什么在抖音直播间打字别人看不见,所有抖音直播间看不见我说话
- HTML+CSS从入门到入土
- 慕课网Flask高级编程实战-7.静态文件、模板、消息闪现与Jinja2
热门文章
- 复旦邱锡鹏新作:单机微调650亿参数大模型,业内人士:对大模型普及意义重大...
- 理发店里看到的成功格言
- CSS3 greyscale 实现元素转换成黑白色(灰色、置灰)
- 2020年10月汽车行业网络关注度分析月度报告
- [转载]Black-Scholes 模型中 d1,d2 是怎么得到的?如何理解 Black-Scholes 模型?
- 中秋国庆福利四连击 之 星球图书抽奖
- (二十二)unity Shader——————非真实感渲染:上篇(卡通风格的渲染)
- JAVA 上传图片时 压缩后上传
- cv2.waitKey的入门级理解
- QTableWidget用法,qt表格使用