团队项目:安卓端用百度地图api定位显示跑道
因为安卓调用api对我来说是一个完全陌生的领域,我在经过很长时间终于弄出来了,这段时间还是很有成效的,我得到了历练。
第一步:注册成为百度开发者
在百度地图开放平台创建应用。地址http://lbsyun.baidu.com/index.php?title=首页
在电脑中找到sha1码来注册,寻找sha1码的方式,网上有教程,开始我没有用集成安卓的eclipse,用android studio。所以采用的是cmd命令台的方式查找的。
这张图片节选自网络
这是另一种方式:在eclipse中打开Windows-->Preferences-->Android-->Build
下面是在eclipse中创建的包名,也要写入应用中;就可以得到一个AK
这是我的开发应用AK:
再将安卓地图SDK下载
将SDK下载后找libs将其中的jar文件复制
如图在eclipse(之前用了android studio尝试了5次,闪退,报错,可能是我不太熟悉android studio的平台吧。我改用了集成安卓的eclipse进行开发。)中新建一个名字叫map的安卓项目。
在项目中新建一个libs项目,将jar文件粘贴到文件中。然后导入到项目中,左下方会有一个红色的小标记。
再同理将所有的含有so文件的文件夹(即armeabi)等,导入到libs中。
在AndroidMenifest.xml中添加权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 访问网络 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 获取WiFi状态 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- 允许程序写入外部存储,如SD卡上写文件 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!-- 读取电话状态 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<!-- 获取精确位置 GPS芯片接收卫星的定位信息,定位精度达10米以内 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 通过WiFi或移动基站的方式获取用户错略的经纬度信息 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 获取模拟定位信息 -->
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
增加ak
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="//AK码" />
在activity_main.xml中增加代码
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
在MainActivity中加入如下代码。
package com.example.map; import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.MapView; import android.os.Bundle;
import android.app.Activity;
import android.view.Menu; public class MainActivity extends Activity { MapView mMapView = null;// 用于显示地图的控件; @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext());// 初始化地图SDK,注意一定要写在 setContentView(R.layout.activity_main);代码前;
setContentView(R.layout.activity_main); mMapView = (MapView) findViewById(R.id.bmapView);// 绑定控件;
} @Override
protected void onDestroy() {// 管理地图的生命周期:销毁
super.onDestroy();
mMapView.onDestroy(); } @Override
protected void onResume() {// 显示;
super.onResume();
mMapView.onResume();
} @Override
protected void onPause() {// 暂停;
super.onPause();
mMapView.onPause();
} }
运行普通地图。结果为
这个是我上周六一直在家里调试之前的地图demo,在学校虚拟机显示的是方格图,我以为是因为电脑没有GPS才显示的,结果发现还有错误。这个是我调试了大半天,从早上到下午2点,才运行到手机上的.
andriod studio我前后尝试了5次,每一次都是未运行前没有错误,因为个人认为已经把显示错误的地方给改好。第一次运行报了300多个错误,第二次报错700多个,我实在没办法,没法调。所以换成了eclipse。
这是其中的一个studio截图
下一步应该是将定位SDK参照以上方式导入到libs中
以上是我自己做出来的。因为文件大小有33M,无法上传到coding.net。网盘下载地址链接:https://pan.baidu.com/s/1bYImiq
实话实说,做出基本地图后,我找到了一个demo,我自己把它调试了出来,有定位功能,效果很好。也是基于eclipse版本的,是一个挺好的开发版本。网盘下载地址链接:https://pan.baidu.com/s/1qYTgojE
这是我运行的定位效果图
这段时间我在图书馆借了一本安卓的书,看了谷歌地图在studio的使用。总之,动手做了,也学会了不少东西。
上了研究生学了这门课程,对我自己所研究的方向也有很大的用处,软件工程是一门很有用的课程,总之这个学期尤其在这门课程中我学会的很多。
团队项目:安卓端用百度地图api定位显示跑道的更多相关文章
- 百度地图API定位+显示位置
1. 先在需要嵌入地图的页面引入map.js <script src="http://api.map.baidu.com/api?v=2.0&ak=你的秘钥"> ...
- Android 百度地图API 定位 导航
看看这个利用百度地图定位并实现目的地导航的Demo. 首先看实现效果: 进 入后首先会得到当前位置,在地图上显示出来.在输入框中输入目的地后,就会在地 ...
- 百度地图api定位和导航简写
function locate() { // 百度地图API功能 var map = new BMap.Map("allmap"); // 创建Map实例 var point = ...
- 【web端】百度地图api
百度地图js加载 页面引入: 修改申请的密钥:<script type="text/javascript" src="http://api.map.baidu.co ...
- 通过百度地图API定位--第三方开源--百度地图(一)
1.把百度地图定位API(下载地址:http://lbsyun.baidu.com/sdk/download?selected=location)里面的libs复制到自己的项目libs里面 2.进行相 ...
- Android应用中使用百度地图API定位自己的位置(二)
官方文档:http://developer.baidu.com/map/sdkandev-6.htm#.E7.AE.80.E4.BB.8B3 百度地图SDK为开发人员们提供了例如以下类型的地图覆盖物: ...
- 关于百度地图api测距显示NaN的解决方案
因为随着百度地图的api的升级,测距的函数以及语句都发生的一定变化. 在调用api测距的时候通常我们使用的是语句map.getDistance(marker1,marker2); 但为什么这么简单的测 ...
- 百度地图API 定位一直4.9E-324
使用百度地图Android SDK 7.0定位坐标一直为4.9E-324,网上搜索了很多,但是均未解决我的问题,在此坐下解决记录,在设置权限中将应用添加信任即可!android 6.0 其他版本未测! ...
- html5移动端根据百度地图api获取详细地址
<script type="text/javascript" src="js/BMap.js" ></script> <scrip ...
随机推荐
- 【转】使用程序修改系统(IE)代理设置
文章都是发布在github再转到这边的,这边格式可能会乱掉.博客地址:benqy.com 这是本人在做的一个前端开发调试工具(HttpMock),功能是web服务器+http日记+http代理(类似f ...
- 2.2.2 RelativeLayout(相对布局)
本节引言 在上一节中我们对LinearLayout进行了详细的解析,LinearLayout也是我们 用的比较多的一个布局,我们更多的时候更钟情于他的weight(权重)属性,等比例划分,对屏幕适配还 ...
- jupyter中添加conda环境
安装完Anaconda利用conda创建了虚拟环境,但是启动jupyter notebook之后却找不到虚拟环境. 实际上是由于在虚拟环境下缺少kernel.json文件,解决方法如下: 首先安装ip ...
- Android-ProgressDialog点击对话框外部是不让其消失
1)ProgressDialog.setCanceledOnTouchOutside(false); 调用这个方法时,按对话框以外的地方不起作用.按返回键还起作用 2)ProgressDialog.s ...
- 1.5《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——清屏
使用命令行时,使用clear命令清除屏幕非常方便: $ clear 键盘简写为^L.(Ctrl + L) 同样地,使用完终端当前窗口或标签页,使用exit命令退出进程: $ exit 键盘简写为^D ...
- 20155302《网络对抗》Exp4 恶意代码分析
20155302<网络对抗>Exp4 恶意代码分析 实验要求 •是监控你自己系统的运行状态,看有没有可疑的程序在运行. •是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工 ...
- Android开发——Fragment知识整理(二)
0. 前言 Android开发中的Fragment的应用非常广泛,在Android开发--Fragment知识整理(一)中简单介绍了关于Fragment的生命周期,常用API,回退栈的应用等知识.这 ...
- 对C++多态的一点理解
作为一个C++新手,我浅谈一下我对多态的一点理解. 首先,引用几句话: 1.继承是一种抽象,它允许程序员在某些时候忽略相似对象的差异,又在其他时候利用这些差异.——<C++沉思录> 2.继 ...
- 外部事件/中断的区别及EXTI->SWIER的用途
EXTI_SWIER作用:允许我们通过程序控制就可以启动中断/事件线 1.产生事件的线路最终的产物是一个脉冲信号,这个脉冲信号可以给其他外设电路使用,比如定时器TIM.模拟数字转换器ADC等等. 2. ...
- Hadoop开发第3期---Hadoop的伪分布式安装
一.准备工作 1. 远程连接工具的安装 PieTTY 是在PuTTY 基础上开发的,改进了Putty 的用户界面,提供了多语种支持.Putty 作为远程连接linux 的工具,支持SSH 和telne ...